CSES - Datatähti 2021 alku - Results
Submission details
Task:Ratsun reitit
Sender:bruh420
Submission time:2020-10-07 18:16:50 +0300
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1, 2, 3details
#20.01 s1, 2, 3details
#30.01 s1, 2, 3details
#40.01 s1, 2, 3details
#50.01 s1, 2, 3details
#60.01 s1, 2, 3details
#70.01 s1, 2, 3details
#80.01 s2, 3details
#90.01 s2, 3details
#100.01 s2, 3details
#110.01 s3details
#120.01 s3details
#130.01 s3details

Compiler report

input/code.cpp:104:0: warning: ignoring #pragma GCC options_pop [-Wunknown-pragmas]
 #pragma GCC options_pop
 
input/code.cpp: In function 'int main()':
input/code.cpp:81:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int ite = 0; ite < naapuriV.size(); ite++) { // auto & n : naapurit(p, koko) mitä ??????
                    ~~~~^~~~~~~~~~~~~~~~~
input/code.cpp: In function 'bool oleva(Piste, int)':
input/code.cpp:18:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Code

// g++ -std=c++11 -O2 -Wall ratsunreitit.cpp -o ratsunreitit
#include<bits/stdc++.h>
#pragma GCC push_options
#pragma GCC optimize ("-O3") 
using namespace std;

struct Piste {
    int x, y, matka;
};

bool oleva(Piste p, int koko) {

    if(p.x < 0 || p.y < 0)
        return false;
    else if(p.x >= koko || p.y >= koko) 
        return false;

}
#pragma GCC optimize ("-O0")
vector<Piste>naapurit(Piste p, int koko) {
    const int xliike[] { +1, +2,  +2, +1, -1, -2,  -2, -1 };
    const int yliike[] { -2, -1,  +1, +2, +2, +1,  -1, -2 };

    vector<Piste> ret;
	
    for(int i = 0; i < 8; i ++) {
        Piste tyo;
        tyo.x = p.x + xliike[i];
        tyo.y = p.y + yliike[i];
        if(oleva(tyo, koko)) {
            ret.push_back(tyo);
        }
    }
    return ret;

}
#pragma GCC pop_options
#pragma GCC push_options
#pragma GCC optimize ("-O3")
/*#pragma GCC push_options
#pragma GCC optimize ("-O1")
Piste popback(vector<Piste> *jono) {
	Piste p = jono.back();
	jono.pop_back();
	return p;
}
#pragma GCC pop_options*/

 int main() {
    int koko;
    cin >> koko;
    if(koko < 4) return -1;
    
    
    //vector<vector<int>> ruudukko;
    short ruudukko[koko][koko];
    vector<Piste> jono;

    for( int y = 0; y < koko; y++) {
        for( int x = 0; x < koko; x++) {
            ruudukko[x][y] = SHRT_MAX;
            Piste tyo; 
            tyo.x = x; tyo.y = y;
            jono.push_back(tyo);
        }
    }

    ruudukko[0][0] = 0;
    //cout << jono.empty() << endl;
    vector<Piste> naapuriV;
    while(!jono.empty()) {
        	
        Piste p = jono.back();
    	jono.pop_back(); // Piste n: naapurit(p, koko)
		naapuriV = naapurit(p, koko);
		/*for(int i = 0; i < naapuriV.size(); i++) {
			cout << naapuriV[i].x << naapuriV[i].y << endl;
		}*/
		//cout << p.x << p.y << endl;
		//cout << naapuriV.size() << endl;
		for(int ite = 0; ite < naapuriV.size(); ite++) { // auto & n : naapurit(p, koko)	mitä ??????
            Piste n = naapuriV[ite];
			if(ruudukko[n.x][n.y] > ruudukko[p.x][p.y]) {
                ruudukko[n.x][n.y] = ruudukko[p.x][p.y] + 1;
                jono.push_back(n);
            }
        }
        naapuriV.clear();
    }

	for(int i = 0; i < koko; i++) {
		ruudukko[0][i] = ruudukko[i][0];
	}

    for(int y = 0; y < koko; y++) {
        for(int x = 0; x < koko; x++) {
            cout << ruudukko[x][y] << " ";
        }
        cout << endl;
    }
	return 0;

}
#pragma GCC options_pop

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

Test 2

Group: 1, 2, 3

Verdict:

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

Test 3

Group: 1, 2, 3

Verdict:

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

Test 4

Group: 1, 2, 3

Verdict:

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

Test 5

Group: 1, 2, 3

Verdict:

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

Test 6

Group: 1, 2, 3

Verdict:

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

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...

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
0 32767 32767 32767 32767 3276...