https://atcoder.jp/contests/kupc2019/tasks/kupc2019_c
解説
https://atcoder.jp/contests/kupc2019/submissions/7961542
最初の分銅は1gにする。
すると、1~Kgは測れる。
次に用意する分銅はK+1としたい所だが、(2K+1)gを用意すればいい。
例えば、K+1gを測りたいときは、
(2K+1)=(K+1)+K
とすれば測れる。
こうすると上限はK+(2K+1)*Kまで測れるようになる。
これで上限をジャンジャン増やしていけばいい。
ll M, K; //--------------------------------------------------------------------------------------------------- void _main() { cin >> M >> K; ll bundo = 1; int ans = 1; ll ma = K; while (ma < M) { bundo = ma * 2 + 1; ans++; ma += bundo * K; } cout << ans << endl; }