제출 #1321627

#제출 시각아이디문제언어결과실행 시간메모리
1321627exoworldgdTracks in the Snow (BOI13_tracks)C++20
100 / 100
804 ms420480 KiB
#include<bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
#define int long long
using namespace std;
const int N=4005;
int n,m,dx[]={-1,0,1,0},dy[]={0,1,0,-1},vis[N][N],mx;
char c[N][N];
signed main(void){
	exoworldgd;
	cin>>n>>m;
	for(int i=0;i<n;i++)cin>>c[i];
	deque<array<int,3>>q;
	q.push_back({1,0,0});
	while(q.size()){
		auto[w,x,y]=q.front();q.pop_front();
		if(vis[x][y])continue;
		vis[x][y]=w;
		for(int i=0;i<4;i++){
			int nx=x+dx[i],ny=y+dy[i];
			if(nx>=0&&nx<n&&ny>=0&&ny<m&&!vis[nx][ny]&&c[nx][ny]^'.'){
				if(c[nx][ny]==c[x][y])q.push_front({w,nx,ny});
				else q.push_back({w+1,nx,ny});
			}
		}
	}
	for(int i=0;i<n;i++)for(int j=0;j<m;j++)mx=max(mx,vis[i][j]);
	cout<<mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...