https://yukicoder.me/problems/no/928
解説
https://yukicoder.me/submissions/399903
不等式にして条件を満たすラーメンを考えてみる。
floor( (1+P/100)x ) < floor( (1+Q/100)x ) + A
floorは切り捨ての関数である。
両辺のfloorについてなんとかするのは難しい。
中身と制約をよく見るとxは2倍にしかならない。
Aの最大値は104なので、xは十分に大きくなると、大小関係が一定になってくる。
なので、適当な所で探索を打ちやめて大小関係が固まってきたら、それ以降は同じであるとして良い。
int P, Q, A; int MA = 1000000; //--------------------------------------------------------------------------------------------------- bool check(ll x) { ll lft = (100 + P) * x / 100; ll rht = (100 + Q) * x / 100 + A; return lft < rht; } //--------------------------------------------------------------------------------------------------- void _main() { cin >> P >> Q >> A; int ans = 0; rep(x, 1, MA) if (check(x)) ans++; if (check(MA)) ans += 1000000000 - MA + 1; cout << ans << endl; }