답안 #937516

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
937516 2024-03-04T07:43:41 Z Wansur 축구 경기장 (IOI23_soccer) C++17
1.5 / 100
595 ms 415448 KB
#include <bits/stdc++.h>
#define f first
#define s second
#define ent '\n'

#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")

typedef long long ll;
using namespace std;
struct seg{
    int m1,m2,sum,cnt;
};

const string out[2]={"NO\n","YES\n"};

const ll dx[]={0,1,0,-1,-1,1,1,-1};
const ll dy[]={1,0,-1,0,-1,1,-1,1};
const int mod=998244353;
const int md=1e9+7;
const int mx=2e3+12;
const bool T=0;

bool used[2001][2001];
int n;

void dfs(int x,int y){
    used[x][y]=1;
    for(int i=0;i<4;i++){
        int x1=dx[i]+x,y1=dy[i]+y;
        if(min(x1,y1)>=0 && max(x1,y1)<n && !used[x1][y1]){
            dfs(x1,y1);
        }
    }
}

int biggest_stadium(int N, vector<vector<int>> a){
    int sum=0;
    n=N;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            sum+=!a[i][j];
            if(a[i][j]){
                used[i][j]=1;
            }
        }
    }
    bool ok=0;
    int pos=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(!used[i][j]){
                pos=i;
                if(ok)return 0;
                ok=1;
                dfs(i,j);
            }
        }
    }
    int l=-1,r=-1;
    vector<pair<int,int>> v;
    for(int i=pos;i<n;i++) {
        int tl = -1, tr = -1, sum = 0;
        for (int j = 0; j < n; j++) {
            if (!a[i][j]) {
                ok = 1;
                if (tl == -1) {
                    tl = j;
                }
                tr = j;
                sum++;
            }
        }
        if (tl==-1){
            break;
        }
        if(sum!=tr-tl+1){
            return 0;
        }
        v.push_back({tl,tr});
    }
    for(int i=0;i<v.size();i++){
        auto [l,r]=v[i];
        int mxl=l, mnr=r;
        for(int j=i+1;j<v.size();j++){
            auto [tl, tr]=v[j];
            mxl=max(mxl,tl);
            mnr=min(mnr,tr);
            if(tr > r && mxl > l)return 0;
            if(tl < l && mnr < r)return 0;
            if(tr < r && mxl > tl)return 0;
            if(tl > l && mnr < tr)return 0;
        }
    }
    return sum;
}

Compilation message

soccer.cpp: In function 'int biggest_stadium(int, std::vector<std::vector<int> >)':
soccer.cpp:82:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |     for(int i=0;i<v.size();i++){
      |                 ~^~~~~~~~~
soccer.cpp:85:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |         for(int j=i+1;j<v.size();j++){
      |                       ~^~~~~~~~~
soccer.cpp:60:9: warning: unused variable 'l' [-Wunused-variable]
   60 |     int l=-1,r=-1;
      |         ^
soccer.cpp:60:14: warning: unused variable 'r' [-Wunused-variable]
   60 |     int l=-1,r=-1;
      |              ^
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 348 KB partial
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB ok
2 Correct 0 ms 444 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 1 ms 348 KB ok
6 Partially correct 1 ms 344 KB partial
7 Partially correct 2 ms 1628 KB partial
8 Partially correct 34 ms 28556 KB partial
9 Partially correct 595 ms 415448 KB partial
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB ok
2 Correct 0 ms 444 KB ok
3 Partially correct 1 ms 348 KB partial
4 Incorrect 0 ms 348 KB wrong
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 444 KB ok
4 Partially correct 1 ms 348 KB partial
5 Incorrect 0 ms 348 KB wrong
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 444 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 1 ms 348 KB partial
7 Incorrect 0 ms 348 KB wrong
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 444 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 1 ms 348 KB partial
7 Incorrect 0 ms 348 KB wrong
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 1 ms 348 KB ok
3 Correct 0 ms 444 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Correct 1 ms 348 KB ok
7 Partially correct 1 ms 344 KB partial
8 Partially correct 2 ms 1628 KB partial
9 Partially correct 34 ms 28556 KB partial
10 Partially correct 595 ms 415448 KB partial
11 Partially correct 1 ms 348 KB partial
12 Incorrect 0 ms 348 KB wrong
13 Halted 0 ms 0 KB -