CSES - Datatähti 2022 alku - Results
Submission details
Task:Spiraali (Spiral)
Sender:valk
Submission time:2021-10-13 19:54:04
Language:Java
Status:READY
Result:15
Feedback
groupverdictscore
#1ACCEPTED15
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.21 s1details
#2--2details
#3--3details

Code


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

public class Main {

	public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        int size = input.nextInt(); //size
        int tests = input.nextInt(); //tests
        
        HashMap<String, Integer> yValues = new HashMap<>();
        
        int squares = size*size;
        
        int num = 0;
        
        int y = 0;
        int x = 1;
        int yl = 0;
        int xl = 0;
        
        String direction = "down";
        
        for(int i = 0; i < size; i++) {
        	for(int i2 = 0; i2 < size; i2++) yValues.putIfAbsent(i + "," + i2, -1);
        }
        
        for(int i = 0; i < squares; i++) {
        	num++;
        	if(direction == "down") {
        		y++;
        		yValues.put(y+","+x, num);
        		if(y == size-yl) { //end
        			direction = "right";
        		}
        	}else if(direction == "right") {
        		x++;
        		yValues.put(y+","+x, num);
        		if(x == size-xl) { //end
        			direction = "up";
        		}
        	}else if(direction == "up") {
        		y--;
        		yValues.put(y+","+x, num);
        		if(y == 1+yl) { //end
        			direction = "left";
        			xl++;
        		}
        	}else if(direction == "left") {
        		x--;
        		yValues.put(y+","+x, num);
        		if(x == 1+xl) { //end
        			direction = "down";
        			yl++;
        		}
        	}
        }
        
        //HashMap<Integer, Integer> responses = new HashMap<>();
        
        for(int i = 0; i < tests; i++) {
        	int a = input.nextInt();
        	int b = input.nextInt();
        	
        	System.out.println(yValues.get(a + "," + b));
        }
        
        input.close();
    }
	
}

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:

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

correct output
773533
312166
206053
200080
593922
...

user output
(empty)

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)