Submission #980196

# Submission time Handle Problem Language Result Execution time Memory
980196 2024-05-12T00:56:01 Z vjudge1 Soccer Stadium (IOI23_soccer) C++17
14 / 100
216 ms 31832 KB
    #include "soccer.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define deb(x) cout<<#x<<": "<<x<<endl;
int biggest_stadium(int N, vector<vector<int>> F)
{
    if(N>3){
 for(int i=0; i<N; ++i){
    for(int j=0; j<N; ++j){
        if(F[i][j]==1){
            int ans=min((i+1)*(j+1), (N-i)*(j+1));
            ans=min(ans, (i+1)*(N-j));
            ans=min(ans, (N-i)*(N-j));
            ans=N*N-ans;
            return ans;
        }
    }
 }
 return N*N;
    }
    int ans=0;
    int ayuda=N*N;
    int mevoyamorir=pow(2, ayuda);
    
    for(int mask=0;mask < mevoyamorir; ++mask){
        vector<vector<int>> grid (N, vector<int> (N, 0));
        for(int i=0; i<N; ++i){
            for(int j=0; j<N; ++j){
                if(F[i][j]==1){
                    grid[i][j]=-1;
                }
            }
        }
        int aux=mask;
    	int col=0;
        int fil=0;
        vector<pair<int,int>> coord;
        while(aux>0){
            if(aux%2){
                if(grid[fil][col]==-1){
                    break;
                }
                grid[fil][col]=1;
                coord.pb({fil, col});
            }
            col++;
            if(col>=N){
                fil++;
                col=0;
            }
            aux/=2;
        }
        if(aux>0){
            continue;
        }
        bool posib=true;

        for(int i=0; i<coord.size(); ++i){
            for(int j=i+1; j<coord.size(); ++j){
                if(grid[coord[i].first][coord[j].second]==1 || grid[coord[j].first][coord[i].second]==1){
                    if(coord[i].first==coord[j].first){
                        int a=coord[i].second;
                        int b=coord[j].second;
                        if(a>b) swap(a,b);
                        for(int x=a; x<=b; ++x){
                            if(grid[coord[i].first][x]!=1){
                                posib=false;
                                break;
                            }
                        } 
                        if(!posib) break;
                    }
                    if(coord[i].second==coord[j].second){
                        int a=coord[i].first;
                        int b=coord[j].first;
                        if(a>b) swap(a,b);
                        for(int x=a; x<=b; ++x){
                            if(grid[x][coord[i].second]!=1){
                                posib=false;
                                break;
                            }
                        } 
                        if(!posib) break;
                    }
                }
                else{
                    posib=false;
                    break;
                }
            }
            if(!posib) break;
        }
        if(posib){

            ans=max(ans,(int) coord.size());
        }

    }
    return ans;
}

Compilation message

soccer.cpp: In function 'int biggest_stadium(int, std::vector<std::vector<int> >)':
soccer.cpp:59:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |         for(int i=0; i<coord.size(); ++i){
      |                      ~^~~~~~~~~~~~~
soccer.cpp:60:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |             for(int j=i+1; j<coord.size(); ++j){
      |                            ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 344 KB ok
5 Correct 0 ms 348 KB ok
6 Correct 1 ms 348 KB ok
7 Correct 1 ms 348 KB ok
8 Correct 14 ms 2396 KB ok
9 Correct 216 ms 31832 KB ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 344 KB ok
4 Correct 1 ms 344 KB ok
5 Correct 1 ms 348 KB ok
6 Correct 0 ms 348 KB ok
7 Correct 0 ms 348 KB ok
8 Correct 1 ms 348 KB ok
9 Correct 1 ms 348 KB ok
10 Correct 0 ms 348 KB ok
11 Correct 1 ms 432 KB ok
12 Correct 1 ms 348 KB ok
13 Correct 0 ms 348 KB ok
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 344 KB wrong
2 Halted 0 ms 0 KB -