Submission #729372

#TimeUsernameProblemLanguageResultExecution timeMemory
729372PringDango Maker (JOI18_dango_maker)C++14
13 / 100
2070 ms468 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #define int long long typedef pair<int, int> pii; const int MXN = 3000; int n, m, ans = 0; string s[MXN]; vector<vector<pii>> tango; bitset<MXN> b[MXN]; void GET_TANGO() { for (int i = 0; i < n; i++) { for (int j = 0; j < m - 2; j++) { if (s[i][j] == 'R' && s[i][j + 1] == 'G' && s[i][j + 2] == 'W') { tango.push_back({{i, j}, {i, j + 1}, {i, j + 2}}); } // if (s[i][j] == 'W' && s[i][j + 1] == 'G' && s[i][j + 2] == 'R') { // tango.push_back({{i, j}, {i, j + 1}, {i, j + 2}}); // } } } for (int j = 0; j < m; j++) { for (int i = 0; i < n - 2; i++) { if (s[i][j] == 'R' && s[i + 1][j] == 'G' && s[i + 2][j] == 'W') { tango.push_back({{i, j}, {i + 1, j}, {i + 2, j}}); } // if (s[i][j] == 'W' && s[i + 1][j] == 'G' && s[i + 2][j] == 'R') { // tango.push_back({{i, j}, {i + 1, j}, {i + 2, j}}); // } } } } void DFS(int id, int now) { if (id == tango.size()) { ans = max(ans, now); return; } bool flag = true; for (int i = 0; flag && i < 3; i++) { if (b[tango[id][i].first][tango[id][i].second]) { flag = false; } } if (flag) { for (int i = 0; flag && i < 3; i++) { b[tango[id][i].first][tango[id][i].second] = true; } DFS(id + 1, now + 1); for (int i = 0; flag && i < 3; i++) { b[tango[id][i].first][tango[id][i].second] = false; } } DFS(id + 1, now); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for (int i = 0; i < n; i++) cin >> s[i]; GET_TANGO(); // for (auto &i : tango) { // for (auto &j : i) cout << j.first << ' ' << j.second << endl; // cout << endl; // } DFS(0, 0); cout << ans << endl; return 0; }

Compilation message (stderr)

dango_maker.cpp: In function 'void DFS(long long int, long long int)':
dango_maker.cpp:38:12: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::vector<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     if (id == tango.size()) {
      |         ~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...