CSES - Datatähti 2021 alku - Results
Submission details
Task:Ratsun reitit
Sender:Zendium
Submission time:2020-10-02 14:43:52 +0300
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.22 s1, 2, 3details
#2ACCEPTED0.22 s1, 2, 3details
#3ACCEPTED0.23 s1, 2, 3details
#4ACCEPTED0.29 s1, 2, 3details
#5ACCEPTED0.41 s1, 2, 3details
#6ACCEPTED0.56 s1, 2, 3details
#7--1, 2, 3details
#8--2, 3details
#9--2, 3details
#10--2, 3details
#11--3details
#12--3details
#13--3details

Compiler report

Note: input/RatsuDataT.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Code

import java.util.ArrayList;
import java.util.Scanner;

public class RatsuDataT {
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int rowColumn = Integer.parseInt(scanner.nextLine());
        ArrayList<ArrayList> yList = new ArrayList<>(rowColumn);
        // List Fill
        for (int ii = 0; ii < rowColumn; ii++) {
            ArrayList<Integer> xList = new ArrayList<>(rowColumn);
            for (int iii = 0; iii < rowColumn; iii++) {
                xList.add(0);
            }
            yList.add(xList);
        }
        // Integer comb
        ArrayList<Integer> thisPointsX = new ArrayList<>();
        thisPointsX.add(0);
        ArrayList<Integer> thisPointsY = new ArrayList<>();
        thisPointsY.add(0);
        ArrayList<Integer> nextPointsX = new ArrayList<>();
        ArrayList<Integer> nextPointsY = new ArrayList<>();
        ArrayList<Integer> roskisX = new ArrayList<>();
        ArrayList<Integer> roskisY = new ArrayList<>();
        int steps = 0;
        int testi = 0;
        boolean contin = true;
        while (contin) {
            for (int thisPointX = 0; thisPointX < thisPointsX.size(); thisPointX++) {
                int ycoord = 0;
                    for (ArrayList<Integer> y : yList) {
                        for (int x = 0; x < y.size(); x++) {
                            boolean trash = false;
                            for (int i = 0; i < roskisX.size(); i++){
                                if(roskisX.get(i) == x && roskisY.get(i) == ycoord){
                                    trash = true;
                                }
                            }
                            if ((((x == thisPointsX.get(thisPointX) + 2 || x == thisPointsX.get(thisPointX) - 2)
                                    && (ycoord == thisPointsY.get(thisPointX) + 1 || ycoord == thisPointsY.get(thisPointX) - 1))
                                    ||
                                    ((x == thisPointsX.get(thisPointX) + 1 || x == thisPointsX.get(thisPointX) - 1)
                                            && (ycoord == thisPointsY.get(thisPointX) + 2 || ycoord == thisPointsY.get(thisPointX) - 2)))
                                    && !trash
                            ) {
                                nextPointsX.add(x);
                                nextPointsY.add(ycoord);
                                y.set(x, steps + 1);
                            }
                            /*
                            if (y.indexOf(x) == thisPointsX.get(thisPointX) + 2 && yList.indexOf(y) == thisPointsY.get(thisPointX)){
                                nextPointsX.add(y.indexOf(x));
                                nextPointsY.add(yList.indexOf(y));
                                x = steps;
                                System.out.println("X: " + y.indexOf(x) + ", Y: " + yList.indexOf(y) + "paint");
                            }
                               */
                        }
                        ycoord++;
                    }

            }
            // juna
            roskisX.addAll(thisPointsX);
            roskisY.addAll(thisPointsY);
            thisPointsX.clear();
            thisPointsY.clear();
            thisPointsX.addAll(nextPointsX);
            thisPointsY.addAll(nextPointsY);
            nextPointsX.clear();
            nextPointsY.clear();
            steps++;
            //yList.get(1).set(0, 3);
            //yList.get(1).set(1, 4);
            //yList.get(0).set(1, 3);
            //yList.get(2).set(2, 4);
            //yList.get(4).set(4, 4);

            if (steps == rowColumn){ contin = false; }
            /*
            int timesY = 0;
            w:
            for (ArrayList<Integer> y: yList){
                int timesX = 0;
                for (int x: y){
                    if (x == 0 && !(timesX == 0 && timesY == 0)){
                        contin = true;
                        break w;
                    } else {
                        contin = false;
                    }
                    timesX++;
                }
                timesY++;
            }
            */
        }
        String lol = "";
        for (ArrayList<Integer> y: yList){
            for (int x: y){
                    lol += (x + " ");
            }
            lol += ("\n");
        }
        System.out.println(lol);
    }
}

Test details

Test 1

Group: 1, 2, 3

Verdict:

input
4

correct output
0 3 2 5 
3 4 1 2 
2 1 4 3 
5 2 3 2 

user output
0 3 2 0 
3 4 1 2 
2 1 4 3 
0 2 3 2 

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
5

correct output
0 3 2 3 2 
3 4 1 2 3 
2 1 4 3 2 
3 2 3 2 3 
2 3 2 3 4 

user output
0 3 2 3 2 
3 4 1 2 3 
2 1 4 3 2 
3 2 3 2 3 
2 3 2 3 4 
...

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
6

correct output
0 3 2 3 2 3 
3 4 1 2 3 4 
2 1 4 3 2 3 
3 2 3 2 3 4 
2 3 2 3 4 3 
...

user output
0 3 2 3 2 3 
3 4 1 2 3 4 
2 1 4 3 2 3 
3 2 3 2 3 4 
2 3 2 3 4 3 
...

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
7

correct output
0 3 2 3 2 3 4 
3 4 1 2 3 4 3 
2 1 4 3 2 3 4 
3 2 3 2 3 4 3 
2 3 2 3 4 3 4 
...

user output
0 3 2 3 2 3 4 
3 4 1 2 3 4 3 
2 1 4 3 2 3 4 
3 2 3 2 3 4 3 
2 3 2 3 4 3 4 
...
Truncated

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
8

correct output
0 3 2 3 2 3 4 5 
3 4 1 2 3 4 3 4 
2 1 4 3 2 3 4 5 
3 2 3 2 3 4 3 4 
2 3 2 3 4 3 4 5 
...

user output
0 3 2 3 2 3 4 5 
3 4 1 2 3 4 3 4 
2 1 4 3 2 3 4 5 
3 2 3 2 3 4 3 4 
2 3 2 3 4 3 4 5 
...
Truncated

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
9

correct output
0 3 2 3 2 3 4 5 4 
3 4 1 2 3 4 3 4 5 
2 1 4 3 2 3 4 5 4 
3 2 3 2 3 4 3 4 5 
2 3 2 3 4 3 4 5 4 
...

user output
0 3 2 3 2 3 4 5 4 
3 4 1 2 3 4 3 4 5 
2 1 4 3 2 3 4 5 4 
3 2 3 2 3 4 3 4 5 
2 3 2 3 4 3 4 
...
Truncated

Test 7

Group: 1, 2, 3

Verdict:

input
10

correct output
0 3 2 3 2 3 4 5 4 5 
3 4 1 2 3 4 3 4 5 6 
2 1 4 3 2 3 4 5 4 5 
3 2 3 2 3 4 3 4 5 6 
2 3 2 3 4 3 4 5 4 5 
...

user output
(empty)

Test 8

Group: 2, 3

Verdict:

input
25

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)

Test 9

Group: 2, 3

Verdict:

input
49

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)

Test 10

Group: 2, 3

Verdict:

input
50

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)

Test 11

Group: 3

Verdict:

input
75

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)

Test 12

Group: 3

Verdict:

input
99

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)

Test 13

Group: 3

Verdict:

input
100

correct output
0 3 2 3 2 3 4 5 4 5 6 7 6 7 8 ...

user output
(empty)