题干:
对于一套题来说,没有一道送分题,就很不符合常理,但是我又懒得写送分题,所以你可以直接复制以下代码,即可ac本题.
- #include<cstdio>#include<iostream> using namespace std; int a,b,c; int main(){long long l=1,r=int(1e9)<<1:cin》a>>b;while(r-l>1){c=(l+r)>>1;if(c-b<a)l=c;else if(c-b>a)r=c;else return printf("%d\n",c); } if(l!=r)return printf("%d\n",r); }
输入描述:
输入共一行,两个整数a和b,范围在int之间
输出描述:
输出一个整数表示答案
示例1
输入
5 123
输出
128
备注:
喵喵喵
解题报告:
复制代码,修 bug。提交,发现 wa。
仔细分析一下代码,发现就是个a+b的求解过程,之所以会wa,就是因为范围是int!需要考虑负数!
或者直接交a+b就可以了。
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,c;
int main() {
long long l=-10000000000,r=10000000000;
cin>>a>>b;
while(r-l>1) {
c=(l+r)>>1;
if(c-b<a)l=c;
else if(c-b>a)r=c;
else {
printf("%lld\n",c);return 0 ;
}
}
if(l!=r){
printf("%lld\n",r);
}
return 0;
}