Submission #409701

#TimeUsernameProblemLanguageResultExecution timeMemory
409701dreezyNowruz (IOI17_nowruz)Text
0 / 100
0 ms0 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...