This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
typedef pair<int,ii> i3;
int main(){
int h,w;
cin >> h >> w;
char grid[h][w];
int visit[h][w];
for (int i = 0; i < h; i++){
for (int j = 0; j < w; j++) {
cin >> grid[i][j];
visit[i][j] = 0;
}
}
priority_queue<i3,vector<i3>,greater<i3> > pq;
int dx[] = {1,0,-1,0},dy[] = {0,1,0,-1};
int ans = 1;
visit[0][0] = 1;
pq.push(i3(1,ii(0,0)));
while (!pq.empty()){
i3 f = pq.top();
pq.pop();
int num = f.first,x = f.second.first,y = f.second.second;
for (int i = 0; i < 4; i++){
int nx = x+dx[i],ny = y+dy[i];
if (nx < 0 || nx >= h || ny < 0 || ny >= w) continue;
if (grid[nx][ny] == '.') continue;
if (visit[nx][ny]) continue;
visit[nx][ny] = 1;
int nnum = num;
if (grid[x][y] != grid[nx][ny]) nnum++;
ans = max(ans,nnum);
//cout << nx << " " << ny << " " << nnum << "\n";
pq.push(i3(nnum,ii(nx,ny)));
}
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |