제출 #855076

#제출 시각아이디문제언어결과실행 시간메모리
855076prof_xTracks in the Snow (BOI13_tracks)C++14
100 / 100
1411 ms112140 KiB
#include<bits/stdc++.h> using namespace std; const int dx[4]={-1,0,1,0}; const int dy[4]={0,1,0,-1}; const int MAXN=4000+5; int g[MAXN][MAXN]; bool visited[MAXN][MAXN]; void solve() { int h,k; cin>>h>>k; for(int i =0;i<=h;i++) { for(int j=0;j<=k;j++) { visited[i][j]=false; } } for(int i=1;i<=h;i++) { for(int j=1;j<=k;j++) { char ch; cin>>ch; switch(ch) { case 'F':g[i][j]=1;break; case '.':visited[i][j]=true;break; case 'R':g[i][j]=0;break; } } } queue<pair<int,int>>q[2]; int ans=0; int kiss=0; q[0].push({1,1}); q[0].push({h,k}); while(!q[kiss].empty()) { while(!q[kiss].empty()) { int x=q[kiss].front().first; int y=q[kiss].front().second; q[kiss].pop(); if(visited[x][y])continue; visited[x][y]=true; for(int i=0;i<4;i++) { int fx=x+dx[i]; int fy=y+dy[i]; if(fx<1||fx>h||fy<1||fy>k||visited[fx][fy])continue; if(g[x][y]^g[fx][fy])q[1-kiss].push({fx,fy}); else q[kiss].push({fx,fy}); } } kiss^=1; ans++; } cout<<ans<<endl; } int main() { int t; t=1; solve(); return 0; }

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

tracks.cpp: In function 'int main()':
tracks.cpp:79:7: warning: variable 't' set but not used [-Wunused-but-set-variable]
   79 |   int t;
      |       ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...