Submission #1056245

#TimeUsernameProblemLanguageResultExecution timeMemory
1056245TheQuantiXSoccer Stadium (IOI23_soccer)C++17
1.50 / 100
180 ms47388 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; using ll = long long; constexpr ll INF = 1000000000; ll n, m, q, k, x, y, a, b, c, d; vector< vector<int> > v; bool check(ll x, ll y) { if (x < 0 || x >= n) { return 0; } if (y < 0 || y >= n) { return 0; } if (v[x][y]) { return 0; } return 1; } int biggest_stadium(int N, std::vector<std::vector<int>> F) { n = N; v = F; ll trees = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (v[i][j]) { trees++; } } } int mnx = INF, mny = INF, mxx = -INF, mxy = -INF; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (v[i][j] && ((check(i, j + 1) && check(i, j - 1)) || (check(i + 1, j) && check(i - 1, j)))) { return 0; } if (!v[i][j]) { mnx = min(mnx, i); mxx = max(mxx, i); mny = min(mny, j); mxy = max(mxy, j); } } } pair<int, int> mnxr = {INF, -INF}; pair<int, int> mnyr = {INF, -INF}; pair<int, int> mxxr = {INF, -INF}; pair<int, int> mxyr = {INF, -INF}; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == mnx) { mnxr = {min(mnxr.first, j), max(mnxr.second, j)}; } if (j == mny) { mnyr = {min(mnyr.first, i), max(mnyr.second, i)}; } if (i == mxx) { mxxr = {min(mxxr.first, j), max(mxxr.second, j)}; } if (j == mxy) { mxyr = {min(mxyr.first, i), max(mxyr.second, i)}; } } } if (max(mnxr.second, mxxr.second) - min(mnxr.first, mxxr.first) > max(mnxr.second - mnxr.first, mxxr.second - mxxr.first)) { return 0; } if (max(mnyr.second, mxyr.second) - min(mnyr.first, mxyr.first) > max(mnyr.second - mnyr.first, mxyr.second - mxyr.first)) { return 0; } return n * n - trees; }
#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...