Submission #1217891

#TimeUsernameProblemLanguageResultExecution timeMemory
1217891qwushaSoccer Stadium (IOI23_soccer)C++20
8 / 100
4594 ms412 KiB
#include <bits/stdc++.h> #include "soccer.h" using namespace std; #define fi first #define se second typedef long long ll; typedef long double ld; mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count()); ll inf = 1e18; bool all_good(int n, vector<vector<int>> f) { bool ok = 1; int cnt = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (f[i][j] == 0) { cnt++; } } } for (int vi = 0; vi < n; vi++) { for (int vj = 0; vj < n; vj++) { for (int ui = 0; ui < n; ui++) { for (int uj = 0; uj < n; uj++) { if (!(f[vi][vj] == 0 && f[ui][uj] == 0)) continue; int mini = min(vi, ui); int maxi = max(vi, ui); int minj = min(vj, uj); int maxj = max(vj, uj); bool fii = 1, fij = 1; for (int i = mini; i <= maxi; i++) { if (f[i][vj] == 1) fii = 0; if (f[i][uj] == 1) fij = 0; } for (int j = minj; j <= maxj; j++) { if (f[ui][j] == 1) fii = 0; if (f[vi][j] == 1) { fij = 0; } } if (fii == 0 && fij == 0) { ok = 0; } } } } } return ok; } int biggest_stadium(int n, vector<vector<int>> f) { int res = 0; for (int ma = 0; ma < (1 << (n * n)); ma++) { vector<vector<int>> vec(n, vector<int>(n)); bool valid = 1; int num = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if ((ma >> (i * n + j)) & 1) { vec[i][j] = 0; num++; } else { vec[i][j] = 1; } if (vec[i][j] == 0 && f[i][j] == 1) { valid = 0; } } } if (!valid) { continue; } if (all_good(n, vec)) { res = max(res, num); } } return res; }
#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...