CSES - Datatähti 2022 alku - Results
Submission details
Task:Spiraali
Sender:Zendium
Submission time:2021-10-07 18:59:08 +0300
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
...