CSES - DatatÃ¤hti 2022 alku - Results
 Task: Spiraali (Spiral) Sender: valk Submission time: 2021-10-14 01:15:05 Language: Java Status: READY Result: 0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.15 s1details
#20.24 s2details
#3--3details

### Code

```
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Scanner;

public class Main {

Scanner input = new Scanner(System.in);

int size = input.nextInt(); //size
int tests = input.nextInt(); //tests

for(int i = 0; i < tests; i++) {
int y = input.nextInt();
int x = input.nextInt();

int layer = 0;

if(x > y && y <= size/2 && x+y-1<size) {
layer = y;
} else if(x <= size/2 && y <= size/2){
layer = x;
} else if (x > y) {
layer = x;
}else {
layer = y;
}

//System.out.println("og layer " + layer);

if(layer > size/2) layer = size/2-(layer-size/2)+1;

int width = (size-(layer-1)*2);
//System.out.println("width " + width + " layer " + layer);

int result = 0;

int tArea = 0;

for(int l = 0+1; l < layer; l++) {
tArea += (size-(layer-1-l)*2)*4-4;
}

if(x == layer) { //left d
tArea += width;
tArea -= width-(y-(layer-1));
//System.out.println("left");
}else if(x == size-layer+1 && x != y) {//right d
tArea += width*3-1;
tArea -= layer-1;
tArea -= y-(layer-1)*2;
//System.out.println("right");
}else if(y == layer) {//top d
tArea += width*4-2;
tArea -= x-(layer-1)*2;
tArea -= layer-1;
//System.out.println("top");
}else if(y == size-layer+1) {//bottom d
tArea -= width-(x-(layer-1));
tArea += width*2-1;
//System.out.println("bottom");
}

//current layer = lower of x or y
//layer width = (size-(layer-1)*2)
//layer area = (size-(layer-1)*2)*4-4
//go through earlier spirals to get total
//then remove extra that hasnt been reached yet

System.out.println(tArea);
}

input.close();
}

}
```

### Test details

Group: 1

Verdict:

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

Group: 2

Verdict:

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:

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

correct output
571375684522141210
967321186816598569
762879105851175000
370065046779516790
936897883750373771
...

user output
(empty)