Submission #153221

# Submission time Handle Problem Language Result Execution time Memory
153221 2019-09-13T01:17:08 Z kungfulon Nautilus (BOI19_nautilus) C++14
66 / 100
12 ms 888 KB
#include <bits/stdc++.h>
#define rep(i,a,b) for(int i = a;i <= b;i++)
#define repd(i,a,b) for(int i = a;i >= b;i--)
using namespace std;
const int N = 112;
int r,c,m,dp[N][N],temp[N][N],grid[N][N];
int main()
{
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//    ifstream cin ("nautilus.inp");
    cin >> r >> c >> m;
    rep(i,1,r)
        rep(j,1,c)
        {
            char k;
            cin >> k;
            dp[i][j] = (k == '.');
            grid[i][j] = dp[i][j];
        }
    rep(_,1,m)
    {
        char k;
        cin >> k;
        switch(k)
        {
        case 'N':
            {
                rep(i,1,r)
                    rep(j,1,c)
                        temp[i][j] = dp[i][j];
                rep(i,1,r)
                    rep(j,1,c)
                        if(grid[i][j])temp[i][j] = dp[i+1][j];
                rep(i,1,r)
                    rep(j,1,c)
                        dp[i][j] = temp[i][j];
                break;
            }
        case 'E' :
            {
                rep(i,1,r)
                    rep(j,1,c)
                        temp[i][j] = dp[i][j];
                rep(i,1,r)
                    rep(j,1,c)
                        if(grid[i][j])temp[i][j] = dp[i][j-1];
                rep(i,1,r)
                    rep(j,1,c)
                        dp[i][j] = temp[i][j];
                break;
            }
        case 'S':
            {
                rep(i,1,r)
                    rep(j,1,c)
                        temp[i][j] = dp[i][j];
                rep(i,1,r)
                    rep(j,1,c)
                        if(grid[i][j])temp[i][j] = dp[i-1][j];
                rep(i,1,r)
                    rep(j,1,c)
                        dp[i][j] = temp[i][j];
                break;
            }
        case 'W':
            {
                rep(i,1,r)
                    rep(j,1,c)
                        temp[i][j] = dp[i][j];
                rep(i,1,r)
                    rep(j,1,c)
                        if(grid[i][j])temp[i][j] = dp[i][j+1];
                rep(i,1,r)
                    rep(j,1,c)
                        dp[i][j] = temp[i][j];
                break;
            }
        default :
            {
                rep(i,1,r)
                    rep(j,1,c)
                        temp[i][j] = dp[i][j];
                rep(i,1,r)
                    rep(j,1,c)
                        if(grid[i][j])temp[i][j] = (dp[i-1][j] || dp[i+1][j] || dp[i][j-1] || dp[i][j+1]);
                rep(i,1,r)
                    rep(j,1,c)
                        dp[i][j] = temp[i][j];
            }
        }
    }
    int ans = 0;
    rep(i,1,r)
        rep(j,1,c) ans += dp[i][j];
    cout << ans;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 504 KB Output is correct
2 Correct 7 ms 504 KB Output is correct
3 Correct 9 ms 504 KB Output is correct
4 Correct 9 ms 732 KB Output is correct
5 Correct 7 ms 504 KB Output is correct
6 Correct 5 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 504 KB Output is correct
2 Correct 7 ms 504 KB Output is correct
3 Correct 9 ms 504 KB Output is correct
4 Correct 9 ms 732 KB Output is correct
5 Correct 7 ms 504 KB Output is correct
6 Correct 5 ms 504 KB Output is correct
7 Correct 5 ms 504 KB Output is correct
8 Correct 10 ms 504 KB Output is correct
9 Correct 9 ms 632 KB Output is correct
10 Correct 7 ms 504 KB Output is correct
11 Correct 5 ms 504 KB Output is correct
12 Correct 5 ms 504 KB Output is correct
13 Correct 9 ms 504 KB Output is correct
14 Correct 12 ms 504 KB Output is correct
15 Correct 7 ms 504 KB Output is correct
16 Correct 5 ms 508 KB Output is correct
17 Correct 5 ms 508 KB Output is correct
18 Correct 8 ms 504 KB Output is correct
19 Correct 12 ms 504 KB Output is correct
20 Correct 8 ms 504 KB Output is correct
21 Correct 5 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 504 KB Output is correct
2 Correct 7 ms 504 KB Output is correct
3 Correct 9 ms 504 KB Output is correct
4 Correct 9 ms 732 KB Output is correct
5 Correct 7 ms 504 KB Output is correct
6 Correct 5 ms 504 KB Output is correct
7 Correct 5 ms 504 KB Output is correct
8 Correct 10 ms 504 KB Output is correct
9 Correct 9 ms 632 KB Output is correct
10 Correct 7 ms 504 KB Output is correct
11 Correct 5 ms 504 KB Output is correct
12 Correct 5 ms 504 KB Output is correct
13 Correct 9 ms 504 KB Output is correct
14 Correct 12 ms 504 KB Output is correct
15 Correct 7 ms 504 KB Output is correct
16 Correct 5 ms 508 KB Output is correct
17 Correct 5 ms 508 KB Output is correct
18 Correct 8 ms 504 KB Output is correct
19 Correct 12 ms 504 KB Output is correct
20 Correct 8 ms 504 KB Output is correct
21 Correct 5 ms 504 KB Output is correct
22 Runtime error 4 ms 888 KB Execution killed with signal 11 (could be triggered by violating memory limits)
23 Halted 0 ms 0 KB -