Advertisement
namemkazaza

Task A

Nov 13th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. struct point
  6. {
  7.     int x, y;
  8. };
  9.  
  10. int main() {
  11.     double n;
  12.     long long lower, higher, k;
  13.     point nechet, chet;
  14.     cin >> n;
  15.     higher = int(ceil(sqrt(n)));
  16.     lower = int(floor(sqrt(n)));
  17.     if (higher == lower)
  18.         cout << higher << " " << higher;
  19.  
  20.     else
  21.     {
  22.         if (lower % 2 == 1)
  23.         {
  24.             nechet.x = lower;
  25.             nechet.y = lower;
  26.             if (higher / 2 % 2 == 1)
  27.             {
  28.                 chet.x = 1;
  29.                 chet.y = higher;
  30.                 if (n - lower * lower == 1)
  31.                     cout << nechet.x + 1 << " " << nechet.y;
  32.                 else if (n - lower * lower == 2)
  33.                     cout << nechet.x + 1 << " " << nechet.y + 1;
  34.                 else if (n - lower * lower == 3)
  35.                     cout << nechet.x << " " << nechet.y + 1;
  36.                 else
  37.                 {
  38.                     k = n - lower * lower - 3;
  39.                     if (k / 2 % 2 == 1)
  40.                         cout << nechet.x - (k / 2) - 1 << " " << nechet.y + 1 - (k % 2);
  41.                     else
  42.                         cout << nechet.x - (k / 2) - 1 << " " << nechet.y + (k % 2);
  43.                 }
  44.             }
  45.             else
  46.             {
  47.                 chet.x = higher;
  48.                 chet.y = 1;
  49.                 if (n - lower * lower == 1)
  50.                     cout << nechet.x << " " << nechet.y + 1;
  51.                 else if (n - lower * lower == 2)
  52.                     cout << nechet.x + 1 << " " << nechet.y + 1;
  53.                 else if (n - lower * lower == 3)
  54.                     cout << nechet.x + 1 << " " << nechet.y;
  55.                 else
  56.                 {
  57.                     k = n - lower * lower - 3;
  58.                     if (k / 2 % 2 == 1)
  59.                         cout << nechet.x + (k % 2) << " " << nechet.y - (k / 2);
  60.                     else
  61.                         cout << nechet.x + 1 - (k % 2) << " " << nechet.y - (k / 2);
  62.                 }
  63.             }
  64.         }
  65.         else
  66.         {
  67.             chet.x = higher;
  68.             chet.y = higher;
  69.             if (lower / 2 % 2 == 1)
  70.             {
  71.                 nechet.x = 1;
  72.                 nechet.y = lower;
  73.                 k = n - lower * lower;
  74.                 if (k / 2 % 2 == 1)
  75.                     cout << nechet.x + k / 2 << " " << nechet.y + 2 - (k % 2);
  76.                 else
  77.                     cout << nechet.x + k / 2 << " " << nechet.y + 1 + (k % 2);
  78.             }
  79.             else
  80.             {
  81.                 nechet.x = lower;
  82.                 nechet.y = 1;
  83.                 k = n - lower * lower;
  84.                 if (k / 2 % 2 == 1)
  85.                     cout << nechet.x + k / 2 << " " << nechet.y - (k % 2);
  86.                 else
  87.                     cout << nechet.x + k / 2 << " " << nechet.y + 1 - (k % 2);
  88.             }
  89.         }
  90.     }
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement