とりあえずいくつか足して貪欲に変換していったら通った。
const int M = 10000000 + 1; class PouringWater { public: int getMinBottles(int N, int K) { if (N < K) return 0; const int B = 30; for (int m = 0; m <= M; ++m) { lli n = m + N; lli b = n; for (int i = 0; i + 1 < B; ++i) { b -= n; b += (n % 2) + (n / 2); n /= 2; if (b <= K) return m; } } return -1; } };