Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed main() {
- // thisComputer = (argc == 2);
- seriy();
- int n, m;
- cin >> n >> m;
- if(m == 0) {
- int h = 1, w = 1;
- int k = n - 1;
- while(k > 0) {
- if(h < w) {
- h++;
- k -= w;
- }
- else {
- w++;
- k -= h;
- }
- }
- return cout << 2 * h + 2 * w, 0;
- }
- int p = INF;
- for(int i = 2; i < (int)5e4; i++) {
- int l = 0, r = INF;
- while(r - l > 1) {
- int mid = (r + l) >> 1;
- int ans = mid * (i / 2);
- if(i % 2) ans += mid / 2;
- if(ans >= m) r = mid;
- else l = mid;
- }
- int k = n - (i * r - m * 2);
- int h = i, w = r;
- if(w > h && k > (w - h) * w) {
- h = w;
- k -= (w - h) * w;
- }
- if(w < h && k > (h - w) * h) {
- w = h;
- k -= (h - w) * h;
- }
- while(k > 0) {
- if(h < w) {
- h++;
- k -= w;
- }
- else {
- w++;
- k -= h;
- }
- }
- p = min(p, 2 * w + 2 * h);
- if(r < i) break;
- }
- cout << p;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement