1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
int () { int T; cin >> T; FOR(kase, 0, T){ cout << "Case #" << kase + 1 << ": "; ll n, k; cin >> n >> k; cerr << kase << " " << n << " " << k << endl; map<ll, ll> s; s[n] = 1LL; while(k > 0){ auto p = *(--s.end()); s.erase(--s.end()); ll len = p.first; ll cnt = p.second; if (cnt >= k){ cout << len / 2 << " " << (len - 1) / 2 << endl; break; } k -= cnt; s[len/2] += cnt; s[(len-1)/2] += cnt; } } return 0; }
|
近期评论