제출 #1187712

#제출 시각아이디문제언어결과실행 시간메모리
1187712MatteoArcariSoccer Stadium (IOI23_soccer)C++20
8 / 100
4592 ms4416 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; int check(int n, vector<vector<int>> f) { int ans = 0; for (auto _: {0, 1}) { ans = 0; vector<int> l(n), r(n); for (int i = 0; i < n; i++) { bool found = 0; bool flag = 0; int _l = -1, _r = -1; for (int j = 0; j < n; j++) { if (!f[i][j]) { _r = j; if (_l == -1) _l = j; ans++; found = 1; if (flag) return 0; } else if (found) flag = 1; } l[i] = _l; r[i] = _r; if (_l == -1) continue; for (int j = 0; j < i; j++) { if (l[j] == -1) continue; if (l[j] < _l && r[j] < _r) return 0; if (l[j] > _l && r[j] > _r) return 0; } } for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { swap(f[i][j], f[j][i]); } } } return ans; } int biggest_stadium(int n, vector<vector<int>> f) { int ans = 0; for (int mask = 0; mask < (1 << (n * n)); mask++) { auto g = f; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (mask & (1 << (n * i + j))) { g[i][j] = 1; } } } ans = max(ans, check(n, g)); } return ans; }
#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...