#include<iostream> using namespace std; int main() { int k, num1, num2, num3; cin>>k>>num1>>num2>>num3; int minNum = min(num1,(min(num2,num3))); int maxNum = max(num1,(max(num2,num3))); int flag1 = 1, flagMid = 1, flag2 = 1; while(k--) flag2 *= 2; flag2 = flag2 -1; flagMid = (flag1 + flag2)/2; while(minNum > flagMid || maxNum < flagMid) { if(minNum > flagMid) { flag1 = flagMid; flagMid = (flag1 + flag2 + 1)/2; } if(maxNum < flagMid) { flag2 = flagMid; flagMid = (flag1 + flag2)/2; } } cout<<flagMid<<endl; return 0; }
点赞 评论

相关推荐

牛客网
牛客企业服务