とりあえずいくつか足して貪欲に変換していったら通った。
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;
}
};