Submission #134027

#TimeUsernameProblemLanguageResultExecution timeMemory
134027ly20Tracks in the Snow (BOI13_tracks)C++17
100 / 100
1740 ms163452 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=4123,INF=1123456789; int dist[MAXN][MAXN]; int tb[MAXN][MAXN]; int dx[]={0,0,1,-1},dy[]={1,-1,0,0}; int main() { int n,m; scanf("%d %d",&n,&m); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { char c; scanf(" %c",&c); if(c=='F') { tb[i][j]=0; } if(c=='R') { tb[i][j]=1; } if(c=='.') { tb[i][j]=-1; } dist[i][j]=INF; } } deque<pair<int,int> > fila; fila.push_back(make_pair(0,0)); dist[0][0]=1; while(!fila.empty()) { int curx=fila.front().first,cury=fila.front().second;fila.pop_front(); for(int i=0;i<4;i++) { int vizx=curx+dx[i],vizy=cury+dy[i]; if(vizx<0 || vizx>=n || vizy<0 || vizy>=m)continue; if(tb[vizx][vizy]==-1)continue; if(tb[vizx][vizy]==tb[curx][cury]) { if(dist[curx][cury]<dist[vizx][vizy]) { dist[vizx][vizy]=dist[curx][cury]; fila.push_front(make_pair(vizx,vizy)); } } else { if(dist[curx][cury]<dist[vizx][vizy]-1) { dist[vizx][vizy]=dist[curx][cury]+1; fila.push_back(make_pair(vizx,vizy)); } } } } int resp=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(tb[i][j]!=-1)resp=max(resp,dist[i][j]); } } printf("%d\n",resp); return 0; }

Compilation message (stderr)

tracks.cpp: In function 'int main()':
tracks.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~~
tracks.cpp:16:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf(" %c",&c);
             ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...