Task: | Suunnistus |
Sender: | adex720 |
Submission time: | 2025-01-18 14:02:00 +0200 |
Language: | C++ (C++20) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 31 |
#2 | ACCEPTED | 12 |
#3 | ACCEPTED | 57 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.00 s | 3 | details |
#2 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#3 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#4 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#5 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
#6 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
#7 | ACCEPTED | 0.18 s | 2, 3 | details |
#8 | ACCEPTED | 0.21 s | 2, 3 | details |
#9 | ACCEPTED | 0.01 s | 2, 3 | details |
#10 | ACCEPTED | 0.04 s | 3 | details |
#11 | ACCEPTED | 0.05 s | 3 | details |
#12 | ACCEPTED | 0.01 s | 3 | details |
#13 | ACCEPTED | 0.20 s | 3 | details |
#14 | ACCEPTED | 0.10 s | 2, 3 | details |
#15 | ACCEPTED | 0.00 s | 3 | details |
#16 | ACCEPTED | 0.00 s | 3 | details |
#17 | ACCEPTED | 0.03 s | 2, 3 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:19:9: warning: unused variable 'rastiX' [-Wunused-variable] 19 | int rastiX[k + 1]; | ^~~~~~ input/code.cpp:20:9: warning: unused variable 'rastiY' [-Wunused-variable] 20 | int rastiY[k + 1]; | ^~~~~~
Code
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m, k; cin >> n >> m >> k; string s; char c; int kartta[n + 2][m + 2]; int alkuX, alkuY; int rastiX[k + 1]; int rastiY[k + 1]; for (int y = 1; y <= n; y++) { cin >> s; for (int x = 1; x <= m; x++) { c = s[x - 1]; kartta[y][x] = c == '#' ? -1 : 0; if (c == 'S') { alkuX = x; alkuY = y; } if (c == 'E') { kartta[y][x] = k + 1; } if (c >= '0' && c <= '9') { kartta[y][x] = c - '0'; } } } for (int i = 0; i < n + 1; i++) { kartta[i][0] = -1; kartta[i][m + 1] = -1; } for (int i = 0; i < m + 1; i++) { kartta[0][i] = -1; kartta[n + 1][i] = -1; } int kayty[n + 2][m + 2][k + 1]; for (int y = 0; y < n + 2; y++) { for (int x = 0; x < m + 2; x++) { for (int i = 0; i <= k; i++) { kayty[y][x][i] = 0; } } } queue<pair<pair<int, int>, pair<int, int>>> q; q.push({{alkuY, alkuX}, {0, 0}}); while (!q.empty()) { auto p = q.front(); q.pop(); int y = p.first.first; int x = p.first.second; int rasti = p.second.first; int matka = p.second.second; if (kayty[y][x][rasti]) continue; kayty[y][x][rasti] = 1; if (kartta[y][x] == rasti + 1) { rasti++; if (rasti == k + 1) { cout << matka; return 0; } } if (kartta[y - 1][x] >= 0) { q.push({{y - 1, x}, {rasti, matka + 1}}); } if (kartta[y + 1][x] >= 0) { q.push({{y + 1, x}, {rasti, matka + 1}}); } if (kartta[y][x - 1] >= 0) { q.push({{y, x - 1}, {rasti, matka + 1}}); } if (kartta[y][x + 1] >= 0) { q.push({{y, x + 1}, {rasti, matka + 1}}); } } cout << -1; }
Test details
Test 1
Group: 3
Verdict: ACCEPTED
input |
---|
10 10 9 S293#35616 #662963731 54975451#7 5162589168 ... |
correct output |
---|
25 |
user output |
---|
25 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
500 500 0 ................................. |
correct output |
---|
301 |
user output |
---|
301 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
500 500 0 .#.........#.#..##..#............ |
correct output |
---|
253 |
user output |
---|
253 |
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: ACCEPTED
input |
---|
500 500 9 ................................. |
correct output |
---|
3447 |
user output |
---|
3447 |
Test 8
Group: 2, 3
Verdict: ACCEPTED
input |
---|
500 500 9 .#........#..................#... |
correct output |
---|
4952 |
user output |
---|
4952 |
Test 9
Group: 2, 3
Verdict: ACCEPTED
input |
---|
500 500 9 ##.########.##########.#..#...... |
correct output |
---|
-1 |
user output |
---|
-1 |
Test 10
Group: 3
Verdict: ACCEPTED
input |
---|
500 500 9 623475428948841896621266296765... |
correct output |
---|
205 |
user output |
---|
205 |
Test 11
Group: 3
Verdict: ACCEPTED
input |
---|
500 500 9 7##814125813#3463#272134469457... |
correct output |
---|
157 |
user output |
---|
157 |
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: ACCEPTED
input |
---|
500 500 9 ....................#...#........ |
correct output |
---|
1313 |
user output |
---|
1313 |
Test 14
Group: 2, 3
Verdict: ACCEPTED
input |
---|
499 499 9 S#...#...#...#...#...#...#...#... |
correct output |
---|
1124942 |
user output |
---|
1124942 |
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: ACCEPTED
input |
---|
500 500 9 ................................. |
correct output |
---|
-1 |
user output |
---|
-1 |