제출 #1152533

#제출 시각아이디문제언어결과실행 시간메모리
1152533s_sadullayevTracks in the Snow (BOI13_tracks)C++20
100 / 100
664 ms43056 KiB
#include <iostream> #include <vector> #include <queue> #include <algorithm> using namespace std; int n,m; vector<string>a(4005); vector<vector<bool>>used(4005,vector<bool>(4005)); vector<int>dx={0,0,-1,1}; vector<int>dy={-1,1,0,0}; int cnt=0; void bfs(queue<pair<int,int>>&q1, queue<pair<int,int>>&q2){ if(q1.empty()) return; ++cnt; while(!q1.empty()){ int x=q1.front().first; int y=q1.front().second; q1.pop(); for(int i=0; i<4; i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(nx<0 || nx>=n || ny<0 || ny>=m || a[nx][ny]=='.' || used[nx][ny]) continue; used[nx][ny] = true; if(a[nx][ny] != a[x][y]) q2.push(make_pair(nx, ny)); else q1.push(make_pair(nx, ny)); } } bfs(q2,q1); } int main() { cin>>n>>m; for(int i=0; i<n; i++) cin>>a[i]; queue<pair<int,int>> q1,q2; q1.push(make_pair(0, 0)); used[0][0] = true; bfs(q1,q2); cout<<cnt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...