CSES - Datatähti 2025 loppu - Results
Submission details
Task:Suunnistus
Sender:manttila
Submission time:2025-01-18 16:22:54 +0200
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s3details
#20.95 s1, 2, 3details
#3--1, 2, 3details
#4ACCEPTED0.03 s1, 2, 3details
#5ACCEPTED0.01 s1, 2, 3details
#6ACCEPTED0.01 s1, 2, 3details
#70.95 s2, 3details
#8--2, 3details
#9ACCEPTED0.03 s2, 3details
#10--3details
#11--3details
#12ACCEPTED0.03 s3details
#13--3details
#140.03 s2, 3details
#15ACCEPTED0.01 s3details
#16ACCEPTED0.01 s3details
#170.95 s2, 3details

Compiler report

input/code.cpp: In function 'void solve()':
input/code.cpp:56:13: warning: 'e' may be used uninitialized in this function [-Wmaybe-uninitialized]
   56 |     if(dis[e]>M) cout << -1;
      |             ^

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long // xd

typedef vector<int> vi;
typedef pair<int,int> pi;
#define pb push_back
#define fi first
#define se second

#define INF LLONG_MAX/2-1
#define M 1000000007
#define N 300100


vi adj[N];
char grid[505][505];
int id[505][505];
vi dis(N,INF);

void solve(){
    int n,m,k,e,count=2; cin >> n >> m >> k;
    for(int i=1; i<=n; i++){
        string z; cin >> z;
        for(int j=1; j<=m; j++){
            char in = z[j-1];
            grid[i][j] = in;
            if(grid[i][j]=='#') continue;
            if(grid[i][j]=='S') id[i][j]=1;
            else{id[i][j]=count; count++;}

            if(id[i-1][j]!=0){
                adj[id[i][j]].pb(id[i-1][j]);
                adj[id[i-1][j]].pb(id[i][j]);
            }
            if(id[i][j-1]!=0){
                adj[id[i][j]].pb(id[i][j-1]);
                adj[id[i][j-1]].pb(id[i][j]);

            }
            if(grid[i][j]=='E') e=id[i][j];
        }
    }

    queue<int> q; q.push(1);
    dis[1]=0;
    while(!q.empty()){
        int a=q.front(); q.pop();
        if(dis[a]==N) break;
        for(auto u:adj[a]){
            if(dis[u]<=dis[a]) continue;
            dis[u]=dis[a]+1;
            q.push(u);
        }
    }
    if(dis[e]>M) cout << -1;
    else cout << dis[e];
    
}

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);

    int tt=1;
    while(tt--) solve();

    return 0;
}

Test details

Test 1

Group: 3

Verdict:

input
10 10 9
S293#35616
#662963731
54975451#7
5162589168
...

correct output
25

user output
15

Test 2

Group: 1, 2, 3

Verdict:

input
500 500 0
.................................

correct output
301

user output
(empty)

Test 3

Group: 1, 2, 3

Verdict:

input
500 500 0
.#.........#.#..##..#............

correct output
253

user output
(empty)

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
500 500 0
...#......##.##.#.#..##..#..##...

correct output
-1

user output
-1

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
500 1 0
.
.
.
.
...

correct output
77

user output
77

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 500 0
.................................

correct output
166

user output
166

Test 7

Group: 2, 3

Verdict:

input
500 500 9
.................................

correct output
3447

user output
(empty)

Test 8

Group: 2, 3

Verdict:

input
500 500 9
.#........#..................#...

correct output
4952

user output
(empty)

Test 9

Group: 2, 3

Verdict: ACCEPTED

input
500 500 9
##.########.##########.#..#......

correct output
-1

user output
-1

Test 10

Group: 3

Verdict:

input
500 500 9
623475428948841896621266296765...

correct output
205

user output
(empty)

Test 11

Group: 3

Verdict:

input
500 500 9
7##814125813#3463#272134469457...

correct output
157

user output
(empty)

Test 12

Group: 3

Verdict: ACCEPTED

input
500 500 9
##67##36##5#3###67###8972#61##...

correct output
-1

user output
-1

Test 13

Group: 3

Verdict:

input
500 500 9
....................#...#........

correct output
1313

user output
(empty)

Test 14

Group: 2, 3

Verdict:

input
499 499 9
S#...#...#...#...#...#...#...#...

correct output
1124942

user output
124998

Test 15

Group: 3

Verdict: ACCEPTED

input
500 1 9
1
6
1
3
...

correct output
332

user output
332

Test 16

Group: 3

Verdict: ACCEPTED

input
1 500 9
996327784392827829434482995353...

correct output
135

user output
135

Test 17

Group: 2, 3

Verdict:

input
500 500 9
.................................

correct output
-1

user output
(empty)