제출 #222015

#제출 시각아이디문제언어결과실행 시간메모리
222015shart23Dango Maker (JOI18_dango_maker)C++14
13 / 100
5 ms896 KiB
#include <bits/stdc++.h> #define endl "\n" using namespace std; const int MAXN = 100; vector<int> vin[MAXN][MAXN]; vector<int> g[MAXN * MAXN]; int used[MAXN * MAXN]; int res = 0; void dfs2(int v) { if (used[v] == 2 || used[v] == 3) { return; } bool flag = true; for (auto u : g[v]) { if (used[u] == 2) { flag = false; } } if (flag) { res++; used[v] = 2; } else { used[v] = 3; } for (auto u : g[v]) { dfs2(u); } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, m; cin >> n >> m; vector<string> arr(n); for (auto &x : arr) { cin >> x; } int cnt = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (i <= n - 3) { if (arr[i][j] == 'R' && arr[i + 1][j] == 'G' && arr[i + 2][j] == 'W') { vin[i][j].push_back(cnt); vin[i + 1][j].push_back(cnt); vin[i + 2][j].push_back(cnt); cnt++; } } if (j <= m - 3) { if (arr[i][j] == 'R' && arr[i][j + 1] == 'G' && arr[i][j + 2] == 'W') { vin[i][j].push_back(cnt); vin[i][j + 1].push_back(cnt); vin[i][j + 2].push_back(cnt); cnt++; } } } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { for (auto v : vin[i][j]) { for (auto u : vin[i][j]) { if (v != u) { g[v].push_back(u); } } } } } for (int i = 0; i < cnt; i++) { if (g[i].size() == 1) { dfs2(i); } } for (int i = 0; i < cnt; i++) { dfs2(i); } cout << res << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...