Submission #1037966

#TimeUsernameProblemLanguageResultExecution timeMemory
1037966ZicrusSoccer Stadium (IOI23_soccer)C++17
3.50 / 100
190 ms31776 KiB
#include <bits/stdc++.h> #include "soccer.h" using namespace std; typedef long long ll; int biggest_stadium(int n, vector<vector<int>> f) { vector<pair<ll, ll>> v(n, {-1, -1}), h(n, {-1, -1}); ll num = 0; bool done = false; pair<ll, ll> prev = {-1, -1}; bool dec = false; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (!f[i][j]) { if (done) return 0; if (v[i].first == -1) v[i].first = j; if (j - v[i].second > 1 && v[i].second != -1) return 0; v[i].second = j; num++; } } if (v[i].first == -1 && num > 0) done = true; if (prev.first == -1) { prev = v[i]; continue; } if (v[i].first == -1) continue; if (v[i].first > prev.first && v[i].second > prev.second) return 0; if (v[i].first < prev.first && v[i].second < prev.second) return 0; if (dec && (v[i].first < prev.first || v[i].second > prev.second)) return 0; if (!dec && (v[i].first > prev.first || v[i].second < prev.second)) dec = true; } num = 0; done = false; prev = {-1, -1}; dec = false; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (!f[j][i]) { if (done) return 0; if (h[i].first == -1) h[i].first = j; if (j - h[i].second > 1 && h[i].second != -1) return 0; h[i].second = j; num++; } } if (h[i].first == -1 && num > 0) done = true; if (prev.first == -1) { prev = h[i]; continue; } if (h[i].first == -1) continue; if (h[i].first > prev.first && h[i].second > prev.second) return 0; if (h[i].first < prev.first && h[i].second < prev.second) return 0; if (dec && (h[i].first < prev.first || h[i].second > prev.second)) return 0; if (!dec && (h[i].first > prev.first || h[i].second < prev.second)) dec = true; } return num; }
#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...