# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1213062 | Aviansh | Soccer Stadium (IOI23_soccer) | C++20 | 4595 ms | 412 KiB |
#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int biggest_stadium(int n, vector<vector<int>> F) {
int ans = 0;
for(int mask = 1;mask<(1<<(n*n));mask++){
vector<vector<bool>>sel(n,vector<bool>(n));
int ind = 0;
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
if((1<<ind)&mask){
sel[i][j]=1;
}
ind++;
}
}
assert(ind==n*n);
bool val = 1;
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++){
if(sel[i][j]&&F[i][j]){
val=0;
}
}
}
for(int i = 0;i<n;i++){
bool start = 0;
bool en = 0;
for(int j = 0;j<n;j++){
if(sel[i][j]){
if(!start){
start=1;
}
else if(en){
val=0;
}
}
else{
if(start){
en=1;
}
}
}
}
bool shrink = 0;
int s = -1;
int e = -1;
for(int i = 0;i<n;i++){
int cs = -1;
int ce = -1;
for(int j = 0;j<n;j++){
if(sel[i][j]){
if(cs==-1){
cs=j;
ce=j;
}
else{
ce=j;
}
}
}
if(s==-1){
s=cs;
e=ce;
}
else{
if(shrink){
if(cs<s||ce>e){
val=0;
}
else{
s=cs;
e=ce;
}
}
else{
if(cs<s||ce>e){
if(cs<=s&&ce>=e){
s=cs;
e=ce;
}
else{
val=0;
}
}
else{
shrink=1;
}
s=cs;
e=ce;
}
}
}
if(val){
ans=max(ans,__builtin_popcount(mask));
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |