CSES - DatatÃ¤hti 2022 alku - Results
 Task: Spiraali Sender: ToukoP Submission time: 2021-10-05 15:03:32 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 <iostream>
using namespace std;

long layer(long n, long x, long y) {
return min(min(x, n - x - 1), min(y, n - y - 1));
}

long sideLength(long n, long l) {
return n - l * 2;
}

long solve(long n, long x, long y) {

long l = layer(n, x, y);
long s = sideLength(n, l);
long outside = n*n - s*s;
s--;

long result = -2;
if (x == l && y >= l && y < l + s) {
result = outside +(y - l) +1;
} else if (y == l) {
result = outside -(x - l) +4*s +1;
} else if (n - x - 1 == l) {
result = outside -(y - l) +3*s +1;
} else if (n - y - 1 == l) {
result = outside +(x - l) +1*s +1;
}

return result;
}

int main6() {
long n = 10;
for (long y = 0; y < n; y++) {
for (long x = 0; x < n; x++) {
cout << "  " << solve(n, x, y);
}
cout << "\n";
}
return 0;
}

int main() {
long n, t;
cin >> n >> t;
long input [t][2];

for (int i = 0; i < t; i++) {
cin >> input[i][1] >> input[i][0];
}

for (int i = 0; i < t; i++) {
cout << solve(n, input[i][0] - 1, input[i][1] - 1) << "\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
...