Thursday, December 8, 2016

UVa 10161 Ant on a Chess Board

UVa 10161 Ant on a Chess Board


#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;

ll sum(ll n)
{
return n*n;
}

int main()
{
ll i, lev, lim, mid;

while (cin >> i && i)
{
lev = (ll)ceil(sqrt(i));
if (lev&1)
{
lim = lev*lev;
mid = lim - (lev-1);
if (i<mid)
{
cout << lev << " " << i-(lev-1)*(lev-1) << endl;
} else
{
cout << lim-(i)+1 << " " << lev << endl;
}
} else
{
lim = lev*lev;
mid = lim - (lev-1);
if (i>=mid)
{
cout << lev << " " << lim-i+1 << endl;
} else
{
cout << i-(lev-1)*(lev-1) << " " << lev << endl;
}
}
}
return 0;
}


Go to link download