CSES - DatatÃ¤hti 2022 alku - Results
 Task: Spiraali Sender: eetul Submission time: 2021-10-17 20:04:51 Language: C++11 Status: READY Result: 100
Feedback
groupverdictscore
#1ACCEPTED15
#2ACCEPTED20
#3ACCEPTED65
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1details
#2ACCEPTED0.01 s2details
#3ACCEPTED0.01 s3details

### Code

```#include <bits/stdc++.h>

#define MIN(X, Y) (((X) <  (Y)) ? (X) : (Y))
#define MAX(X, Y) (((X) >= (Y)) ? (X) : (Y))

using namespace std;

/*int s(int n) {
return n + 2*(n-1) + (n-2);
}*/

int main() {
ios::sync_with_stdio(0);
cin.tie(0);

int n, t, y, x;
cin >> n >> t;

while (t--) {
cin >> y >> x;
long int r = 1;
long int cy = 1;
long int cx = 1;
long int least = MIN(MIN(x, y), MIN(n + 1 - x, n + 1 - y));
if (least > 1) {
/*for (int i = 1; i < least; i++) {
//r += s(n - 2*(i - 1));
r += 4*n - 8*i + 4;
}*/
r = (least - 1) * 4 * (n + 1 - least) + 1;
cx = least;
cy = least;
}
if (cx == x) {
r += (y - cy);
goto quit;
}
else {
cy += (n - 2*(least - 1) - 1);
r += (n - 2*(least - 1) - 1);
}
if (cy == y) {
r += (x - cx);
goto quit;
}
else {
cx += (n - 2*(least - 1) - 1);
r += (n - 2*(least - 1) - 1);
}
if (cx == x) {
r += (cy - y);
goto quit;
}
else {
cy -= (n - 2*(least - 1) - 1);
r += (n - 2*(least - 1) - 1);
}
if (cy == y) {
r += (cx - x);
goto quit;
}
else {
cx -= (n - 2*(least - 1) - 1);
r += (n - 2*(least - 1) - 1);
}
quit:
cout << r << "\n";
}

return 0;
}
```

### Test details

#### Test 1

Group: 1

Verdict: ACCEPTED

input
10 100
1 1
1 2
1 3
1 4
...

correct output
1
36
35
34
33
...

user output
1
36
35
34
33
...

#### Test 2

Group: 2

Verdict: ACCEPTED

input
1000 1000
371 263
915 322
946 880
53 738
...

correct output
773533
312166
206053
200080
593922
...

user output
773533
312166
206053
200080
593922
...

#### Test 3

Group: 3

Verdict: ACCEPTED

input
1000000000 1000
177757853 827347032
409613589 419171337
739269360 256524697
328695530 896842209
...

correct output
571375684522141210
967321186816598569
762879105851175000
370065046779516790
936897883750373771
...

user output
571375684522141210
967321186816598569
762879105851175000
370065046779516790
936897883750373771
...