CSES - DatatÃ¤hti 2022 alku - Results
 Task: Spiraali (Spiral) Sender: Emunemu Submission time: 2021-10-05 18:22:49 Language: C++17 Status: READY Result: 100
Feedback
groupverdictscore
#1ACCEPTED15
#2ACCEPTED20
#3ACCEPTED65
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1details
#2ACCEPTED0.01 s2details
#3ACCEPTED0.01 s3details

### Compiler report

```input/code.cpp: In function 'int main()':
input/code.cpp:106:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (ll i = 0; i < v.size();i++) {
~~^~~~~~~~~~```

### Code

```#include <stdio.h>
#include <iostream>
#include <vector>

using namespace std;
typedef long long ll;

bool Uloimmalla(int x, int y, int nt) {
if (x == 1 || y == 1 ||x==nt||y==nt) {
return true;
}
return false;
}

ll Kerros(ll x, ll y, ll nt) {
if (x > nt/2.0) {
x = nt - x + 1;
} else {
x = 0 + x;
}
if (y > nt/2.0) {
y = nt - y + 1;
} else {
y = 0 + y;
}

if (x>y) {
return y;
} else {
return x;
}

}

int main()
{
ll n,nt,t,x,y;
cin >> n >> t;
vector<ll> v;
for (ll i = 0; i < t;i++) {
cin >> y >> x;
nt = n;

ll perus;
ll tulo;
ll kerrottava;
ll ans;

ll kerros = Kerros(x,y,nt);
tulo = n - (kerros-1);
kerrottava = 4 * (kerros-1);
perus = tulo * kerrottava;
nt -= 2*(kerros-1);
x -= kerros-1;
y -= kerros-1;
ll tulo2 = n - kerros;
ll kerrottava2 = 4 * kerros;
ll perus2 = tulo2 * kerrottava2;
if (x==1) {
ans = perus + y;
} else if (y==nt) {
ans = perus + nt + (x-1);
} else if (y==1) {
ans = perus2 - x + 2;
} else if (x==nt) {
ans = perus2 - nt + 2 - y + 1;
}
v.push_back(ans);
x = 0;
y = 0;

/*while(true) {
if (Uloimmalla(x,y,nt)) {
if (x==1) {
ans = perus + y;
} else if (y==nt) {
ans = perus + nt + (x-1);
} else if (y==1) {
ans = (tulo * kerrottava) - x + 2;
} else if (x==nt) {
ans = (tulo * kerrottava) - nt + 2 - y + 1;
}
}
if (ans != 0) {
v.push_back(ans);
x = 0;
y = 0;
nt = n;
break;
}
perus = tulo * kerrottava;
tulo -= 1;
kerrottava += 4;
nt -= 2;
y -= 1;
x -= 1;
}*/

}

for (ll i = 0; i < v.size();i++) {
cout << v[i] << "\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
...