Advertisement
GerONSo

Untitled

Oct 8th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. signed main() {
  2. // thisComputer = (argc == 2);
  3. seriy();
  4. int n, m;
  5. cin >> n >> m;
  6. if(m == 0) {
  7. int h = 1, w = 1;
  8. int k = n - 1;
  9. while(k > 0) {
  10. if(h < w) {
  11. h++;
  12. k -= w;
  13. }
  14. else {
  15. w++;
  16. k -= h;
  17. }
  18. }
  19. return cout << 2 * h + 2 * w, 0;
  20. }
  21. int p = INF;
  22. for(int i = 2; i < (int)5e4; i++) {
  23. int l = 0, r = INF;
  24. while(r - l > 1) {
  25. int mid = (r + l) >> 1;
  26. int ans = mid * (i / 2);
  27. if(i % 2) ans += mid / 2;
  28. if(ans >= m) r = mid;
  29. else l = mid;
  30. }
  31. int k = n - (i * r - m * 2);
  32. int h = i, w = r;
  33. if(w > h && k > (w - h) * w) {
  34. h = w;
  35. k -= (w - h) * w;
  36. }
  37. if(w < h && k > (h - w) * h) {
  38. w = h;
  39. k -= (h - w) * h;
  40. }
  41. while(k > 0) {
  42. if(h < w) {
  43. h++;
  44. k -= w;
  45. }
  46. else {
  47. w++;
  48. k -= h;
  49. }
  50. }
  51. p = min(p, 2 * w + 2 * h);
  52. if(r < i) break;
  53. }
  54. cout << p;
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement