2017年校招全国统一模拟笔试 01翻转
刚看到这个题目, 还有为几个if,else就可以了, 然后就开始敲了, 后来发现并没有那么简单。
参考题解:http://blog.csdn.net/u010009169/article/details/60892521
#include<bits/stdc++.h>
using namespace std;
int solve(long long a, long long b, long long k)
{
if(a == 0)
return 0;
for(int i=1; i<=a+b; ++ i)
{
long long t = k*i - a;
if(t < 0)
continue;
if(t & 1)
continue;
long long s = (i-1)/2*a + i / 2 * b;
if(t / 2 <= s)
return i;
}
return -1;
}
int main()
{
long long a, b, k;
scanf("%lld%lld%lld", &a, &b, &k);
printf("%d\n", solve(a, b, k));
return 0;
}