제출 #1275908

#제출 시각아이디문제언어결과실행 시간메모리
1275908cansu_mutluTracks in the Snow (BOI13_tracks)C++20
100 / 100
787 ms210308 KiB
#include<bits/stdc++.h> #define int long long using namespace std; int x[4] = {0,0,-1,1}; int y[4] = {1,-1,0,0}; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr),cout.tie(nullptr); int h,w; cin >> h >> w; vector<string> s(h); for(int i=0;i<h;i++) cin >> s[i]; deque<pair<int,int>> q; q.push_front({0,0}); int ans = 0; vector<vector<int>> depth(h,vector<int>(w,0)); depth[0][0] = 1; while(q.size()) { pair<int,int> c = q.front(); q.pop_front(); ans = max(ans,depth[c.first][c.second]); for(int i=0;i<4;i++) { int a = x[i]+c.first,b = y[i]+c.second; if( a>=0 && a<h && b>=0 && b<w && depth[a][b]==0 && s[a][b]!='.') { if(s[a][b]==s[c.first][c.second]) { q.push_front({a,b}); depth[a][b] = depth[c.first][c.second]; } else { q.push_back({a,b}); depth[a][b] = depth[c.first][c.second]+1; } //if(depth[a][b]==2) cout << a << " " << b << endl; } } } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...