제출 #1289630

#제출 시각아이디문제언어결과실행 시간메모리
1289630hasandasDango Maker (JOI18_dango_maker)C++20
13 / 100
2093 ms580 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); long long n, m; cin >> n >> m; vector<string> v(n); for (long long i = 0; i < n; i++) { cin >> v[i]; } vector<vector<long long>> notans; for (long long i = 0; i < n; ++i) { for (long long j = 0; j < m-2; ++j) { if (v[i][j] == 'R' && v[i][j+1] == 'G' && v[i][j+2] == 'W') { vector<long long> p(3); p[0] = i * m + j; p[1] = i * m + (j+1); p[2] = i * m + (j+2); notans.push_back(p); } } } for (long long i = 0; i < n-2; ++i) { for (long long j = 0; j < m; ++j) { if (v[i][j] == 'R' && v[i+1][j] == 'G' && v[i+2][j] == 'W') { vector<long long> p(3); p[0] = i * m + j; p[1] = (i+1) * m + j; p[2] = (i+2) * m + j; notans.push_back(p); } } } long long P = static_cast<long long>(notans.size()); if (P == 0) { cout << 0 << "\n"; return 0; } long long ans = 0; unsigned long long total = 1ULL << P; for (unsigned long long mc = 0; mc < total; ++mc) { vector<char> a(n*m, 0); bool b = true; long long nans = 0; for (long long mi = 0; mi < P; ++mi) { if (mc & (1ULL << mi)) { auto &mp = notans[mi]; if (a[mp[0]] || a[mp[1]] || a[mp[2]]) { b = false; break; } a[mp[0]] = a[mp[1]] = a[mp[2]] = 1; ++nans; } } if (b && nans > ans) { ans = nans; } } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...