CSES - Leirikisa 2 - Results
Submission details
Task:Nautilus
Sender:vgtcross
Submission time:2023-04-18 14:42:02 +0300
Language:C++ (C++11)
Status:READY
Result:66
Feedback
groupverdictscore
#1ACCEPTED29
#2ACCEPTED37
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s2, 3details
#2ACCEPTED0.01 s1, 2, 3details
#3ACCEPTED0.01 s1, 2, 3details
#4ACCEPTED0.01 s1, 2, 3details
#5ACCEPTED0.01 s1, 2, 3details
#6ACCEPTED0.01 s1, 2, 3details
#7ACCEPTED0.01 s1, 2, 3details
#8ACCEPTED0.01 s2, 3details
#9ACCEPTED0.01 s2, 3details
#10ACCEPTED0.01 s2, 3details
#11ACCEPTED0.01 s2, 3details
#12ACCEPTED0.01 s2, 3details
#13ACCEPTED0.02 s2, 3details
#14ACCEPTED0.02 s2, 3details
#15ACCEPTED0.02 s2, 3details
#16ACCEPTED0.01 s2, 3details
#17ACCEPTED0.01 s2, 3details
#18ACCEPTED0.02 s2, 3details
#19ACCEPTED0.03 s2, 3details
#20ACCEPTED0.02 s2, 3details
#21ACCEPTED0.01 s2, 3details
#22ACCEPTED0.01 s2, 3details
#230.25 s3details
#240.75 s3details
#250.62 s3details
#260.44 s3details
#270.03 s3details
#280.35 s3details
#290.73 s3details
#30--3details
#310.66 s3details
#320.04 s3details
#330.42 s3details
#340.85 s3details
#35--3details
#360.80 s3details
#370.04 s3details

Code

#include <bits/stdc++.h>

#define fi first
#define se second

using namespace std;
using ll = long long;
using pii = pair<int, int>;

const int N = 101;

bool dp[N][N][N];

pii mv[4] = {{1, 0},
             {-1, 0},
             {0, 1},
             {0, -1}};

void solve() {
    map<char, pii> mp;
    mp['N'] = {-1, 0};
    mp['E'] = {0, 1};
    mp['S'] = {1, 0};
    mp['W'] = {0, -1};
    
    int n, m, l;
    cin >> n >> m >> l;
    
    vector<string> g(n);
    for (int i = 0; i < n; ++i) {
        cin >> g[i];
    }
    
    string s;
    cin >> s;
    
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            dp[0][i][j] = g[i][j] == '.';
        }
    }
    
    for (int k = 1; k <= l; ++k) {
        char c = s[k-1];
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) if (dp[k-1][i][j]) {
                if (c == '?') {
                    for (pii p: mv) {
                        if (i + p.fi >= 0 && i + p.fi < n && j + p.se >= 0 && j + p.se < m && g[i+p.fi][j+p.se] == '.')
                            dp[k][i+p.fi][j+p.se] = 1;
                    }
                } else {
                    pii p = mp[c];
                    if (i + p.fi >= 0 && i + p.fi < n && j + p.se >= 0 && j + p.se < m && g[i+p.fi][j+p.se] == '.')
                        dp[k][i+p.fi][j+p.se] = 1;
                }
            }
        }
    }
    
    int ans = 0;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            ans += dp[l][i][j];
        }
    }
    
    cout << ans << '\n';
}
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    solve();
    
    return 0;
}

Test details

Test 1

Group: 2, 3

Verdict: ACCEPTED

input
5 9 7
...##....
..#.##..#
..#....##
.##...#..
...

correct output
22

user output
22

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
.................................

correct output
8272

user output
8272

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
.#...#.#..#.....#.........#......

correct output
5

user output
5

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
.#...##...#...##....##.#.##..#...

correct output
1

user output
1

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
..#.#.#..###.#.#.##..########....

correct output
1

user output
1

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
.#.#.###########..#.###.######...

correct output
1

user output
1

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
100 100 100
##############################...

correct output
1

user output
1

Test 8

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.................................

correct output
9503

user output
9503

Test 9

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
#..#.##..#....##...#.##.##..#....

correct output
495

user output
495

Test 10

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
#.#...######.#####.#.##...#.##...

correct output
51

user output
51

Test 11

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.#.#.###########..#.###.######...

correct output
34

user output
34

Test 12

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
##############################...

correct output
19

user output
19

Test 13

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.................................

correct output
9801

user output
9801

Test 14

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
..............#..................

correct output
7479

user output
7479

Test 15

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
#.#.........###.#..#.#..####.#...

correct output
5328

user output
5328

Test 16

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.#.#.###########..#.###.######...

correct output
127

user output
127

Test 17

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
##############################...

correct output
19

user output
19

Test 18

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.................................

correct output
10000

user output
10000

Test 19

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
..............#..................

correct output
8047

user output
8047

Test 20

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
#.#...######.#####.#.##...#.##...

correct output
3500

user output
3500

Test 21

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
.#.#.###########..#.###.######...

correct output
1228

user output
1228

Test 22

Group: 2, 3

Verdict: ACCEPTED

input
100 100 100
##############################...

correct output
43

user output
43

Test 23

Group: 3

Verdict:

input
500 500 5000
.................................

correct output
249493

user output
(empty)

Test 24

Group: 3

Verdict:

input
500 500 5000
#..#.##..#....##...#.##.##..#....

correct output
222

user output
(empty)

Test 25

Group: 3

Verdict:

input
500 500 5000
.#####....####..###...####.#.#...

correct output
1268

user output
(empty)

Test 26

Group: 3

Verdict:

input
500 500 5000
#.#####.##..#####.####..######...

correct output
805

user output
(empty)

Test 27

Group: 3

Verdict:

input
500 500 5000
##############################...

correct output
349

user output
(empty)

Test 28

Group: 3

Verdict:

input
500 500 5000
.................................

correct output
249999

user output
(empty)

Test 29

Group: 3

Verdict:

input
500 500 5000
..............#..................

correct output
197917

user output
(empty)

Test 30

Group: 3

Verdict:

input
500 500 5000
#.#.........###.#..#.#..####.#...

correct output
79550

user output
(empty)

Test 31

Group: 3

Verdict:

input
500 500 5000
#.#####.##..#####.####..######...

correct output
1221

user output
(empty)

Test 32

Group: 3

Verdict:

input
500 500 5000
##############################...

correct output
1414

user output
(empty)

Test 33

Group: 3

Verdict:

input
500 500 5000
.................................

correct output
250000

user output
(empty)

Test 34

Group: 3

Verdict:

input
500 500 5000
..............#..................

correct output
199752

user output
(empty)

Test 35

Group: 3

Verdict:

input
500 500 5000
.#####....####..###...####.#.#...

correct output
87691

user output
(empty)

Test 36

Group: 3

Verdict:

input
500 500 5000
#.#####.##..#####.####..######...

correct output
30998

user output
(empty)

Test 37

Group: 3

Verdict:

input
500 500 5000
##############################...

correct output
1440

user output
(empty)