Submission #849355

#TimeUsernameProblemLanguageResultExecution timeMemory
849355ArtteivTracks in the Snow (BOI13_tracks)C++14
100 / 100
1311 ms69440 KiB
#include <bits/stdc++.h> #define ll long long #define endl '\n' #define pll pair<long long,long long> #define int long long #define pii pair<int,int> #define FOR(i,a,b) for(int i =a; i<=b; i++) #define ROF(i,a,b) for(int i =a; i>=b; i--) const long long MOD = 1e9+7; using namespace std; vector<vector<bool>> stat; vector<string> s; int cur; int w,h; int cn = 0; int dx[4] = {0,1,0,-1}; int dy[4] = {1,0,-1,0}; bool ok(pii a){ if (a.first<=h && a.first>=1 && a.second<=w && a.second>=1 && stat[a.first][a.second]==0) return 1; return 0; } int nx(int c){ if (c=='F') return 'R'; return 'F'; } void solve(){ cin>>h>>w; s.resize(h+1); stat.resize(h+1); for (int i =1; i<=h; i++){ stat[i].resize(w+1); cin>>s[i]; s[i] = '#'+s[i]; } cur = s[1][1]; bool msk = 0; deque<pii> bfs[2]; bfs[msk].push_back({1,1}); int res=0; while (bfs[msk].size()){ auto [x,y] = bfs[msk].front(); bfs[msk].pop_front(); if (stat[x][y]){ if (bfs[msk].empty()){ res++; msk = !msk; cur = nx(cur); } continue; } stat[x][y]=1; for (int i =0; i<4; i++){ int X = x+dx[i],Y = y+dy[i]; if (ok({X,Y})){ if(s[X][Y]==nx(cur)){ bfs[!msk].push_back({X,Y}); } else if (s[X][Y]==cur){ bfs[msk].push_back({X,Y}); } } } if (bfs[msk].empty()){ res++; msk = !msk; cur = nx(cur); } } cout<<res<<endl; } int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); solve(); return 0; }

Compilation message (stderr)

tracks.cpp: In function 'void solve()':
tracks.cpp:47:8: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   47 |   auto [x,y] = bfs[msk].front();
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...