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;
#define x first
#define y second
#define pi pair<int,int>
#define pb push_back
const int maxn = 1e3 + 100;
char grid[maxn][maxn];
bool vis[maxn][maxn];
pi dirs[] ={{0,-1}, {0,1}, {-1,0},{1,0} };
int height, width;
void dfs(pi node, pi parent){
vis[node.y][node.x] = true;
vector<pi> goodadj;
for(pi dir : dirs){
pi adj = {node.x + dir.x, node.y + dir.y};
if(adj == parent) continue;
if (adj.x < 0 || adj.x >= width || adj.y <0 || adj.y >=height) continue;
if(grid[adj.y][adj.x] !='.') continue;
if(vis[adj.y][adj.x]){
grid[node.y][node.x] = 'X';
vis[node.y][node.x] = false;
goodadj.clear();
break;
}
else{
goodadj.pb(adj);
}
}
for( pi adj : goodadj){
dfs(adj, node);
}
}
int main(){
cin >> height >> width;
int kids; cin >> kids;
for(int y = 0; y<height; y++){
string line; cin >> line;
for(int x =0; x<width; x++){
grid[y][x] = line.at(x);
}
}
for(int y = 0; y<height; y++){
bool df = false;
for(int x =0; x<width; x++){
if(grid[y][x] =='.' ){
dfs({x,y}, {-1,-1});
df = true;
break;
}
}
if(df) break;
}
for(int y = 0; y<height; y++){
for(int x =0; x<width; x++){
if(grid[y][x] =='.' && !vis[y][x]){
grid[y][x] = 'X';
}
cout << grid[y][x];
}
cout << endl;
}
/*
cout << endl<<endl;
for(int y = 0; y<height; y++){
for(int x =0; x<width; x++){
cout << vis[y][x];
}
cout << endl;
}*/
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |