답안 #1029292

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1029292 2024-07-20T15:28:59 Z Marco_Escandon Nautilus (BOI19_nautilus) C++11
66 / 100
866 ms 262144 KB
#include<bits/stdc++.h>
using namespace std;
#pragma optimize("O3")
typedef int ll;
ll dx[]={1, 0, -1, 0};
ll dy[]={0, 1, 0, -1};
char cad[505][505];
string s;
pair<ll,ll> d(char car)
{
    if(car=='N')
        return {1,0};
    if(car=='S')
        return {-1,0};
    if(car=='W')
        return {0,1};
    if(car=='E')
        return {0,-1};
}
vector<vector<unordered_map<ll,ll>>> mapa;
ll sol(ll px, ll py, ll p)
{
    if(cad[px][py]=='#') return -1;
    if(p==s.size()) return 1;
    if(mapa[px][py][p]!=0) return mapa[px][py][p];
    if(s[p]!='?')
    {
        pair<ll,ll> car=d(s[p]);
        return mapa[px][py][p]=sol(car.first+px,py+car.second,p+1);
    }
    ll bs=-1;
    for(int i=0; i<4; i++){
        bs=max(bs,sol(px+dx[i],py+dy[i],p+1));
        if(bs==1) break;
    }
    return mapa[px][py][p] = bs;
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    ll n,m,k;
    cin>>n>>m>>k;
    for(int i=0; i<=n+2; i++)
        for(int j=0;j<=m+2; j++)
            cad[i][j]='#';

    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            cin>>cad[i][j];
    mapa.assign(505,vector<unordered_map<ll,ll>>(505));
    cin>>s;
    reverse(s.begin(),s.end());
    ll cont=0;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            cont+=max(sol(i,j,0),0);
        }
    }
    cout<<cont;
    return 0;
}

Compilation message

nautilus.cpp:3: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    3 | #pragma optimize("O3")
      | 
nautilus.cpp: In function 'll sol(ll, ll, ll)':
nautilus.cpp:24:9: warning: comparison of integer expressions of different signedness: 'll' {aka 'int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     if(p==s.size()) return 1;
      |        ~^~~~~~~~~~
nautilus.cpp: In function 'std::pair<int, int> d(char)':
nautilus.cpp:19:1: warning: control reaches end of non-void function [-Wreturn-type]
   19 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 100 ms 51536 KB Output is correct
2 Correct 21 ms 18364 KB Output is correct
3 Correct 9 ms 16220 KB Output is correct
4 Correct 7 ms 14936 KB Output is correct
5 Correct 7 ms 14680 KB Output is correct
6 Correct 7 ms 14428 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 100 ms 51536 KB Output is correct
2 Correct 21 ms 18364 KB Output is correct
3 Correct 9 ms 16220 KB Output is correct
4 Correct 7 ms 14936 KB Output is correct
5 Correct 7 ms 14680 KB Output is correct
6 Correct 7 ms 14428 KB Output is correct
7 Correct 94 ms 46324 KB Output is correct
8 Correct 15 ms 18008 KB Output is correct
9 Correct 9 ms 15448 KB Output is correct
10 Correct 10 ms 14684 KB Output is correct
11 Correct 7 ms 14424 KB Output is correct
12 Correct 99 ms 40272 KB Output is correct
13 Correct 30 ms 20060 KB Output is correct
14 Correct 19 ms 18840 KB Output is correct
15 Correct 11 ms 15196 KB Output is correct
16 Correct 6 ms 14428 KB Output is correct
17 Correct 58 ms 36444 KB Output is correct
18 Correct 17 ms 20572 KB Output is correct
19 Correct 26 ms 21152 KB Output is correct
20 Correct 14 ms 18008 KB Output is correct
21 Correct 7 ms 14428 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 100 ms 51536 KB Output is correct
2 Correct 21 ms 18364 KB Output is correct
3 Correct 9 ms 16220 KB Output is correct
4 Correct 7 ms 14936 KB Output is correct
5 Correct 7 ms 14680 KB Output is correct
6 Correct 7 ms 14428 KB Output is correct
7 Correct 94 ms 46324 KB Output is correct
8 Correct 15 ms 18008 KB Output is correct
9 Correct 9 ms 15448 KB Output is correct
10 Correct 10 ms 14684 KB Output is correct
11 Correct 7 ms 14424 KB Output is correct
12 Correct 99 ms 40272 KB Output is correct
13 Correct 30 ms 20060 KB Output is correct
14 Correct 19 ms 18840 KB Output is correct
15 Correct 11 ms 15196 KB Output is correct
16 Correct 6 ms 14428 KB Output is correct
17 Correct 58 ms 36444 KB Output is correct
18 Correct 17 ms 20572 KB Output is correct
19 Correct 26 ms 21152 KB Output is correct
20 Correct 14 ms 18008 KB Output is correct
21 Correct 7 ms 14428 KB Output is correct
22 Runtime error 866 ms 262144 KB Execution killed with signal 9
23 Halted 0 ms 0 KB -