Submission #1010387

#TimeUsernameProblemLanguageResultExecution timeMemory
1010387thinknoexitSoccer Stadium (IOI23_soccer)C++17
0 / 100
0 ms348 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 2020; int n; int f[N][N]; int l[N], r[N]; bool all_can() { for (int i = 1;i <= n;i++) { for (int j = 1;j <= n + 1;j++) { if (f[i][j - 1] != f[i][j]) { if (!l[i]) l[i] = j; else if (!r[i]) r[i] = j - 1; else return 0; } } } for (int j = 1;j <= n;j++) { int cnt = 0; for (int i = 1;i <= n;i++) { cnt += f[i - 1][j] != f[i][j]; } if (cnt > 2) return 0; } for (int i = 1;i <= n;i++) { if (l[i] == 0) continue; for (int j = 1;j <= n;j++) { if (l[j] == 0) continue; bool ch = (l[i] <= l[i - 1] && r[i - 1] <= r[i]) || (l[i - 1] <= l[i] && r[i] <= r[i - 1]); if (!ch) return 0; } } return 1; } int biggest_stadium(int NN, vector<vector<int>> F) { n = NN; int empty_cell = 0; for (int i = 1;i <= n;i++) { f[0][i] = f[n + 1][i] = f[i][0] = f[i][n + 1] = 1; for (int j = 1;j <= n;j++) { f[i][j] = F[i - 1][j - 1]; empty_cell += f[i][j] == 0; } }// check if all empty cell are regular stadium if (all_can()) return empty_cell; return 0; }
#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...