제출 #171051

#제출 시각아이디문제언어결과실행 시간메모리
171051dndhkNautilus (BOI19_nautilus)C++14
66 / 100
1073 ms1528 KiB
#include <bits/stdc++.h> #define all(v) (v).begin(), (v).end() #define sortv(v) sort(all(v)) #define uniqv(v) (v).erase(unique(all(v)), (v).end()) #define pb push_back #define FI first #define SE second #define lb lower_bound #define ub upper_bound #define mp make_pair #define test 1 #define TEST if(test) using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; const int MOD = 1000000007; // 998244353 const int INF = 2e9; const ll INFLL = 1e18; const int MAX_N = 500; int N, M, Q; string arr[MAX_N+1]; bool dp[2][MAX_N+1][MAX_N+1]; string str; int dx[4] = {0, 0, 1, -1}, dy[4] = {1, -1, 0, 0}; char c[4] = {'W', 'E', 'N', 'S'}; bool chk(int x, int y){ if(x<0 || x>=N || y<0 || y>=M) return false; return (dp[0][x][y]); } int main(){ scanf("%d%d%d", &N, &M, &Q); for(int i=0; i<N; i++){ cin>>arr[i]; for(int j=0; j<M; j++){ dp[0][i][j] = (arr[i][j]=='.'); //cout<<dp[0][i][j]; }//cout<<endl; } cin>>str; for(int k=0; k<Q; k++){ if(str[k]=='?'){ for(int i=0; i<N; i++){ for(int j=0; j<M; j++){ if(chk(i+1, j) || chk(i-1, j) || chk(i, j+1) || chk(i, j-1)){ dp[1][i][j] = true; }else{ dp[1][i][j] = false; } } } }else{ int t; for(t=0; t<4; t++){ if(str[k]==c[t]) break; } //cout<<t<<endl; for(int i=0; i<N; i++){ for(int j=0; j<M; j++){ if(chk(i+dx[t], j+dy[t])){ dp[1][i][j] = true; }else{ dp[1][i][j] = false; } } } } for(int i=0; i<N; i++){ for(int j=0; j<M; j++){ dp[0][i][j] = dp[1][i][j]; if(arr[i][j]=='#') dp[0][i][j] = false; dp[1][i][j] = 0; //cout<<dp[0][i][j]; }//cout<<endl; } //cout<<endl; } int ans = 0; for(int i=0; i<N; i++){ for(int j=0; j<M; j++){ ans+=(int)dp[0][i][j]; } } cout<<ans; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

nautilus.cpp: In function 'int main()':
nautilus.cpp:40:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d", &N, &M, &Q); 
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...