-
Notifications
You must be signed in to change notification settings - Fork 6
/
BCACM11B-src.cpp
58 lines (57 loc) · 1021 Bytes
/
BCACM11B-src.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
using namespace std;
long t, n, x, y, d;
long xtt, ytt, xpt, ypt, xpd, ypd, xtd, ytd;
long stop;
long a[101][101];
void build( long xtt, long ytt, long xpt, long ypt, long xpd, long ypd, long xtd, long ytd)
{
for (long j = ytt; j < ypt; j++)
{
d++;
a[xtt][j] = d;
}
for (long i = xpt; i <= xpd; i++)
{
d++;
a[i][ypt] = d;
}
for (long j = ypd - 1; j >= ytd; j--)
{
d++;
a[xtd][j] = d;
}
for (long i = xtd - 1; i >= xtt + 1; i--)
{
d++;
a[i][ytt] = d;
}
if (d == n * n) stop = 1;
}
main()
{
cin >> t;
for (long q = 1; q <= t; q++)
{
cin >> n >> x >> y;
d = 0; stop = 0;
xtt = 1; ytt = 1;
xpt = 1; ypt = n;
xpd = n; ypd = n;
xtd = n; ytd = 1;
while (not stop)
{
build(xtt, ytt, xpt, ypt, xpd, ypd, xtd, ytd);
xtt++; ytt++;
xpt++; ypt--;
xpd--; ypd--;
xtd--; ytd++;
}
/* for (long i = 1; i <= n; i++)
{
for (long j = 1; j <= n; j++) cout << a[i][j] << " ";
cout << endl;
} */
cout << a[x][y] << endl;
}
}