Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- //#define _GLIBCXX_DEBUG
- #define sz(x) ((long long)(x).size())
- #define all(x) (x).begin(), (x).end()
- #define rall(x) (x).rbegin(), (x).rend()
- #define sp(x, y) fixed << setprecision((y)) << x
- #define pb push_back
- #define ff first
- #define ss second
- const ld eps = 1e-9;
- const ll mod = 1e9 + 7;
- mt19937_64 rnd(time(0));
- void faster()
- {
- cin.tie(nullptr);
- cout.tie(nullptr);
- ios::sync_with_stdio(false);
- }
- // МЕМ ДЛЯ АРТЕМА ГДЕ ТО ТУТ....
- vector <ll> p;
- vector <ll> s;
- ll get_p(ll v)
- {
- if (p[v] == v)
- return v;
- return p[v] = get_p(p[v]);
- }
- void union_(ll a, ll b)
- {
- a = get_p(a);
- b = get_p(b);
- if (a == b)
- return;
- if (s[a] > s[b])
- {
- p[b] = a;
- s[a] += s[b];
- } else
- {
- p[a] = b;
- s[b] += s[a];
- }
- }
- vector <ll> p_;
- vector <ll> s_;
- ll get_p_(ll v)
- {
- if (p_[v] == v)
- return v;
- return p_[v] = get_p_(p_[v]);
- }
- void union__(ll a, ll b)
- {
- a = get_p_(a);
- b = get_p_(b);
- if (a == b)
- return;
- if (s_[a] > s_[b])
- {
- p_[b] = a;
- s_[a] += s_[b];
- } else
- {
- p_[a] = b;
- s_[b] += s_[a];
- }
- }
- int main(){
- //faster();
- //freopen("salesman.in", "r", stdin);
- //freopen("salesman.out", "w", stdout);
- ll n;
- cin >> n;
- n--;
- ll sq = sqrt(n / 4);
- n = n - (sq * sq * 4);
- if (sq % 2 == 1)
- {
- if (sq * 4 + 4 > n)
- {
- if (n % 4 == 0)
- {
- cout << n / 4 * 2 + 1 << " " << sq * 2 + 1;
- }
- else if (n % 4 == 1)
- {
- cout << n / 4 * 2 + 1 << " " << sq * 2 + 2;
- }
- else if (n % 4 == 2)
- {
- cout << n / 4 * 2 + 2 << " " << sq * 2 + 2;
- } else
- {
- cout << n / 4 * 2 + 2 << " " << sq * 2 + 1;
- }
- }
- else
- {
- ll a = sq * 2;
- ll b = (sq - (n - 4 * (sq + 1)) / 4 - 1) * 2;
- if (n % 4 == 0)
- {
- cout << a + 2 << " " << b + 2;
- }
- else if (n % 4 == 1)
- {
- cout << a + 1 << " " << b + 2;
- }
- else if (n % 4 == 2)
- {
- cout << a + 1 << " " << b + 1;
- }
- else
- {
- cout << a + 2 << " " << b + 1;
- }
- }
- }
- else
- {
- if (sq * 4 + 4 > n)
- {
- if (n % 4 == 0)
- {
- cout << sq * 2 + 1 << " " << n / 4 * 2 + 1;
- }
- else if (n % 4 == 1)
- {
- cout << sq * 2 + 2 << " " << n / 4 * 2 + 1;
- }
- else if (n % 4 == 2)
- {
- cout << sq * 2 + 2 << " " << n / 4 * 2 + 2;
- } else
- {
- cout << sq * 2 + 1 << " " << n / 4 * 2 + 2;
- }
- }
- else
- {
- ll a = (sq - (n - 4 * (sq + 1)) / 4 - 1) * 2;
- ll b = sq * 2;
- if (n % 4 == 0)
- {
- cout << a + 2 << " " << b + 2;
- }
- else if (n % 4 == 1)
- {
- cout << a + 2 << " " << b + 1;
- }
- else if (n % 4 == 2)
- {
- cout << a + 1 << " " << b + 1;
- }
- else
- {
- cout << a + 1 << " " << b + 2;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement