Submission #424002

#TimeUsernameProblemLanguageResultExecution timeMemory
424002NachoLibreNowruz (IOI17_nowruz)Text
0 / 100
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int dir[][2] = {-1, 0, 0, 1, 1, 0, 0, -1}; const int N = 1025; int n, m, c, sz[N][N]; pair<int, int> p[N][N]; char a[N][N]; pair<int, int> P(int i, int j) { int ni = p[i][j].first; int nj = p[i][j].second; if(ni == nj && nj == 0) return make_pair(i, j); return p[i][j] = P(ni, nj); } void U(pair<int, int> a, pair<int, int> b) { a = P(a.first, a.second); b = P(b.first, b.second); if(a != b) { sz[b.first][b.second] += sz[a.first][a.second]; p[a.first][a.second] = b; } } int main() { ios::sync_with_stdio(0); cin.tie(0); int wrt = 0, oi = 0, oj = 0; cin >> n >> m >> c; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { cin >> a[i][j]; sz[i][j] = 1; if(a[i][j] == '.') { ++wrt; oi = i; oj = j; } } } int fp = 0; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { if(a[i][j] == '.') { if(j < m && a[i][j + 1] == '.') U({i, j}, {i, j + 1}); if(i < n && a[i + 1][j] == '.') U({i, j}, {i + 1, j}); } } } for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { int cc = 0; if(a[i][j] == '.') { for(int x = 0; x < 4; ++x) { int ni = i + dir[x][0]; int nj = j + dir[x][1]; if(a[ni][nj] == '.') ++cc; } } if(cc == 1) ++fp; // if(cc == 1) { // cout << "X"; // } else { // cout << " "; // } } // cout << "\n"; } // cout << "\n"; // for(int i = 1; i <= n; ++i) { // for(int j = 1; j <= m; ++j) { // if(a[i][j] == '.') // cout << (P(i, j).first + P(i, j).second) % 10 << ""; // else // cout << " "; // } // cout << "\n"; // } cout << (wrt == sz[oi][oj]) << " " << fp << endl; return 0; }
#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...