CSES - DatatÃ¤hti 2022 alku - Results
 Task: Spiraali Sender: Zendium Submission time: 2021-10-07 18:59:08 Language: Java Status: READY Result: 100
Feedback
groupverdictscore
#1ACCEPTED15
#2ACCEPTED20
#3ACCEPTED65
Test results
testverdicttimegroup
#1ACCEPTED0.14 s1details
#2ACCEPTED0.23 s2details
#3ACCEPTED0.24 s3details

### Code

```import java.util.Scanner;

public class Kolmas {

public static int n;
public static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {
String input = sc.nextLine();
n = Integer.parseInt(input.split(" ")[0]);
int t = Integer.parseInt(input.split(" ")[1]);

int[][] tries = new int[t][2];
for (int i = 0; i < t; i++) {
String in = sc.nextLine();
tries[i][1] = Integer.parseInt(in.split(" ")[0]);
tries[i][0] = Integer.parseInt(in.split(" ")[1]);
}

for (int[] xy : tries) {
System.out.println(func(xy[0], xy[1]));
}
}

public static long func(int x, int y) {
long num = 0;
long spiralsIn = Math.min(Math.min(x, y), Math.min(n-x+1, n-y+1));
long spiralsOut=spiralsIn-1;

num += spiralsOut * (n-spiralsOut)*4;

/*
for (int i = 0; i < spiralsOut; i++) {
num+=4*(n-1-2*i);
}
*/

if (x == spiralsIn) {
num+=y-spiralsOut;
} else if (y == n-spiralsOut) {
num+=(n-1) - 2*spiralsOut + (x-spiralsOut);
} else if (x == n-spiralsOut) {
num+=2*((n-1) - 2*spiralsOut) + (n - (y-1) - spiralsOut);
} else {
num+=3*((n-1) - 2*spiralsOut) + (n - (x-1) - spiralsOut);
}
return num;
}
}
```

### 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
...