//Aayush Agarwal - SNAKE
#include <stdio.h>
int main() {
int T, N, X, Y, arr[1001][1001],
i, j, rowTop, colLeft, rowBottom, colRight, dir, value;
while(T--) {
scanf("%d %d %d", &N
, &X
, &Y
); //input
dir = 1; //flag indicating direction for diagonal filling
value = 1; //counter of value to store in array
//for lower half including principal diagonal
rowTop = rowBottom = N-1;
colLeft = colRight = 0;
for(; rowTop >= 0; rowTop--, colRight++, dir ^= 1)
if(dir == 0) //fill top to bottom
for(i = rowTop, j = colLeft; i <= rowBottom; i++, j++)
arr[i][j] = value++;
else //fill bottom to top
for(i = rowBottom, j = colRight; i >= rowTop; i--, j--)
arr[i][j] = value++;
//for upper half
rowTop = 0;
rowBottom = N-2;
colLeft = 1;
colRight = N-1;
for(; rowBottom >= 0; rowBottom--, colLeft++, dir ^= 1)
if(dir == 0)
for(i = rowTop, j = colLeft; i <= rowBottom; i++, j++)
arr[i][j] = value++;
else
for(i = rowBottom, j = colRight; i >= rowTop; i--, j--)
arr[i][j] = value++;
printf("%d\n", arr
[X
-1][Y
-1]); //output }
return 0;
}
Ly9BYXl1c2ggQWdhcndhbCAtIFNOQUtFCiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IG1haW4oKSB7CiAgICBpbnQgVCwgTiwgWCwgWSwgYXJyWzEwMDFdWzEwMDFdLAogICAgICAgIGksIGosIHJvd1RvcCwgY29sTGVmdCwgcm93Qm90dG9tLCBjb2xSaWdodCwgZGlyLCB2YWx1ZTsKICAgIHNjYW5mKCIlZCIsICZUKTsKICAgIHdoaWxlKFQtLSkgewogICAgICAgIHNjYW5mKCIlZCAlZCAlZCIsICZOLCAmWCwgJlkpOyAvL2lucHV0CgogICAgICAgIGRpciA9IDE7IC8vZmxhZyBpbmRpY2F0aW5nIGRpcmVjdGlvbiBmb3IgZGlhZ29uYWwgZmlsbGluZwogICAgICAgIHZhbHVlID0gMTsgLy9jb3VudGVyIG9mIHZhbHVlIHRvIHN0b3JlIGluIGFycmF5CgogICAgICAgIC8vZm9yIGxvd2VyIGhhbGYgaW5jbHVkaW5nIHByaW5jaXBhbCBkaWFnb25hbAogICAgICAgIHJvd1RvcCA9IHJvd0JvdHRvbSA9IE4tMTsKICAgICAgICBjb2xMZWZ0ID0gY29sUmlnaHQgPSAwOwogICAgICAgIGZvcig7IHJvd1RvcCA+PSAwOyByb3dUb3AtLSwgY29sUmlnaHQrKywgZGlyIF49IDEpCiAgICAgICAgICAgIGlmKGRpciA9PSAwKSAvL2ZpbGwgdG9wIHRvIGJvdHRvbQogICAgICAgICAgICAgICAgZm9yKGkgPSByb3dUb3AsIGogPSBjb2xMZWZ0OyBpIDw9IHJvd0JvdHRvbTsgaSsrLCBqKyspCiAgICAgICAgICAgICAgICAgICAgYXJyW2ldW2pdID0gdmFsdWUrKzsKICAgICAgICAgICAgZWxzZSAgICAgICAgLy9maWxsIGJvdHRvbSB0byB0b3AKICAgICAgICAgICAgICAgIGZvcihpID0gcm93Qm90dG9tLCBqID0gY29sUmlnaHQ7IGkgPj0gcm93VG9wOyBpLS0sIGotLSkKICAgICAgICAgICAgICAgICAgICBhcnJbaV1bal0gPSB2YWx1ZSsrOwoKICAgICAgICAvL2ZvciB1cHBlciBoYWxmCiAgICAgICAgcm93VG9wID0gMDsKICAgICAgICByb3dCb3R0b20gPSBOLTI7CiAgICAgICAgY29sTGVmdCA9IDE7CiAgICAgICAgY29sUmlnaHQgPSBOLTE7CiAgICAgICAgZm9yKDsgcm93Qm90dG9tID49IDA7IHJvd0JvdHRvbS0tLCBjb2xMZWZ0KyssIGRpciBePSAxKQogICAgICAgICAgICBpZihkaXIgPT0gMCkKICAgICAgICAgICAgICAgIGZvcihpID0gcm93VG9wLCBqID0gY29sTGVmdDsgaSA8PSByb3dCb3R0b207IGkrKywgaisrKQogICAgICAgICAgICAgICAgICAgIGFycltpXVtqXSA9IHZhbHVlKys7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGZvcihpID0gcm93Qm90dG9tLCBqID0gY29sUmlnaHQ7IGkgPj0gcm93VG9wOyBpLS0sIGotLSkKICAgICAgICAgICAgICAgICAgICBhcnJbaV1bal0gPSB2YWx1ZSsrOwoKICAgICAgICBwcmludGYoIiVkXG4iLCBhcnJbWC0xXVtZLTFdKTsgLy9vdXRwdXQKICAgIH0KICAgIHJldHVybiAwOwp9