Submission #844955

# Submission time Handle Problem Language Result Execution time Memory
844955 2023-09-06T09:57:32 Z JoksimKaktus Soccer Stadium (IOI23_soccer) C++17
0 / 100
1 ms 600 KB
#include "soccer.h"
#include "bits/stdc++.h"

using namespace std;

int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
    int n,s,e,w;
    n = N;
    s = 0;
    w = N;
    e = 0;
    int num = 0;
    for(int i = 0; i < N;i++){
        int con = 0;
        for(int j = 0;j < N;j++){
            if(F[i][j] == 1){
                num++;
                if(con == 1){
                    con = 2;
                }
            }else{
                n = min(n,i);
                s = i;
                if(con == 0){
                    con = 1;
                }else if(con == 2){
                    return 1;
                }
            }
        }
    }
    for(int j = 0; j < N;j++){
        int con = 0;
        for(int i = 0;i < N;i++){
            if(F[i][j] == 1){
                if(con == 1){
                    con = 2;
                }
            }else{
                w = min(w,j);
                e = j;
                if(con == 0){
                    con = 1;
                }else if(con == 2){
                    return 1;
                }
            }
        }
    }
    for(int j = 0;j < N;j++){
        if(F[n][j] == 0){
            for(int i = 0;i < N;i++){
                if(F[s][i] == 0){
                    bool way1 = true;
                    bool way1m = true;
                    bool way2 = true;
                    bool way2m = true;
                    for(int k = j; k <= i;k++){
                        if(F[n][k] == 1){
                            way1 = false;
                            break;
                        }
                    }
                    for(int k = j; k >= i;k++){
                        if(F[n][k] == 1){
                            way1m = false;
                            break;
                        }
                    }
                    if(way1 || way1m){
                        for(int k = n;k <= s;k++){
                            if(F[k][i] == 1){
                                way1 = false;
                                break;
                            }
                        }
                        for(int k = n;k >= s;k--){
                            if(F[k][i] == 1){
                                way1m = false;
                                break;
                            }
                        }
                    }
                    if(!way1 && !way1m){
                        for(int k = n;k <= s;k++){
                            if(F[k][j] == 1){
                                way2 = false;
                                break;
                            }
                        }
                        for(int k = n;k >= s;k--){
                            if(F[k][j] == 1){
                                way2m = false;
                                break;
                            }
                        }
                        if(way2 || way2m){
                            for(int k = j; k <= i;k++){
                                if(F[s][k] == 1){
                                    way2 = false;
                                    break;
                                }
                            }
                            for(int k = j; k >= i;k--){
                                if(F[s][k] == 1){
                                    way2m = false;
                                    break;
                                }
                            }
                            if(!way2 && !way2m){
                                return 1;
                            }
                        }else{
                            return 1;
                        }
                    }
                }
            }
        }
    }
    for(int j = 0;j < N;j++){
        if(F[j][w] == 0){
            for(int i = 0;i < N;i++){
                if(F[i][e] == 0){
                    bool way1 = true;
                    bool way1m = true;
                    bool way2 = true;
                    bool way2m = true;
                    for(int k = j; k <= i;k++){
                        if(F[k][w] == 1){
                            way1 = false;
                            break;
                        }
                    }
                    for(int k = j; k >= i;k--){
                        if(F[k][w] == 1){
                            way1m = false;
                            break;
                        }
                    }
                    if(way1 || way1m){
                        for(int k = w;k <= e;k++){
                            if(F[k][i] == 1){
                                way1 = false;
                                break;
                            }
                        }
                        for(int k = w;k >= e;k--){
                            if(F[k][i] == 1){
                                way1m = false;
                                break;
                            }
                        }
                    }
                    if(!way1 && !way1m){
                        for(int k = w;k <= e;k++){
                            if(F[k][j] == 1){
                                way2 = false;
                                break;
                            }
                        }
                        for(int k = w;k >= e;k--){
                            if(F[k][j] == 1){
                                way2m = false;
                                break;
                            }
                        }
                        if(way2 || way2m){
                            for(int k = j; k <= i;k++){
                                if(F[k][e] == 1){
                                    way2 = false;
                                    break;
                                }
                            }
                            for(int k = j; k >= i;k--){
                                if(F[k][e] == 1){
                                    way2m = false;
                                    break;
                                }
                            }
                            if(!way2 && !way2m){
                                return 1;
                            }
                        }else{
                            return 1;
                        }
                    }
                }
            }
        }
    }

    return N*N-num;
}

# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Runtime error 1 ms 348 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 0 ms 348 KB ok
3 Partially correct 0 ms 348 KB partial
4 Partially correct 0 ms 600 KB partial
5 Incorrect 0 ms 348 KB wrong
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Partially correct 0 ms 348 KB partial
5 Partially correct 0 ms 600 KB partial
6 Incorrect 0 ms 348 KB wrong
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 0 ms 348 KB partial
7 Partially correct 0 ms 600 KB partial
8 Incorrect 0 ms 348 KB wrong
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 0 ms 348 KB partial
7 Partially correct 0 ms 600 KB partial
8 Incorrect 0 ms 348 KB wrong
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Runtime error 1 ms 348 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -