Submission #328827

#TimeUsernameProblemLanguageResultExecution timeMemory
328827egasNautilus (BOI19_nautilus)C++14
66 / 100
22 ms3308 KiB
#include <bits/stdc++.h> using namespace std; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int r; cin >> r; int c; cin >> c; int m; cin >> m; vector<string> grid; for(int i = 0 ; i < r ; i++) { string temp; cin >> temp; grid.push_back(temp); } string path; cin >> path; bool canVisit[101][101][101]; memset(canVisit,0,sizeof canVisit); int res=0; for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(grid[i][j]=='.') { canVisit[i][j][0]=true; } } } for(int k=0; k<path.length(); k++) { if(path[k]=='S') { for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(i-1>=0 and canVisit[i-1][j][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } } } } else if(path[k]=='N') { for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(i+1<r and canVisit[i+1][j][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } } } } else if(path[k]=='E') { for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(j-1>=0 and canVisit[i][j-1][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } } } } else if(path[k]=='W') { for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(j+1<c and canVisit[i][j+1][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } } } } else { for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { if(i-1>=0 and canVisit[i-1][j][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } if(i+1<r and canVisit[i+1][j][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } if(j+1<c and canVisit[i][j+1][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } if(j-1>=0 and canVisit[i][j-1][k] and grid[i][j]=='.') { canVisit[i][j][k+1]=1; } } } } } for(int i = 0 ; i < r ; i++) { for(int j = 0 ; j < c ; j++) { res+=canVisit[i][j][path.length()]; } } cout << res << '\n'; return 0; }

Compilation message (stderr)

nautilus.cpp: In function 'int32_t main()':
nautilus.cpp:59:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for(int k=0; k<path.length(); k++) {
      |                  ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...