Submission #845026

# Submission time Handle Problem Language Result Execution time Memory
845026 2023-09-06T11:18:24 Z JoksimKaktus Soccer Stadium (IOI23_soccer) C++17
0 / 100
1 ms 548 KB
#include "soccer.h"
#include "bits/stdc++.h"

using namespace std;

std::vector<std::vector<int>> f;

bool check(int i1,int j1,int i2,int j2){
    if(i1 < i2){
        int temp = i1;
        i1 = i2;
        i2 = temp;
        temp = j1;
        j1 = j2;
        j2 = temp;
    }
        bool way = true;
        for(int i = i1;i >= i2;i--){
            if(f[i][j1] == 1){
                way = false;
                break;
            }
        }
        if(way){
            if(j1 >= j2){
                for(int j = j1;j >= j2;j--){
                    if(f[i2][j] == 1){
                        way = false;
                        break;
                    }
                }
            }else{
                for(int j = j1;j <= j2;j++){
                    if(f[i2][j] == 1){
                        way = false;
                        break;
                    }
                }
            }
        }
        if(!way){
            way = true;
            if(j1 >= j2){
                for(int j = j1;j >= j2;j--){
                    if(f[i1][j] == 1){
                        way = false;
                        break;
                    }
                }
            }else{
                for(int j = j1;j <= j2;j++){
                    if(f[i1][j] == 1){
                        way = false;
                        break;
                    }
                }
            }
            if(way){
                for(int i = i1;i >= i2;i--){
                    if(f[i][j2] == 1){
                        return false;
                    }
                }
            }else{
                return false;
            }
        }
        return true;
}

int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
    f = std::vector<std::vector<int>>(N, std::vector<int>(N, 0));
    for(int i = 0;i < N;i++){
        for(int j = 0;j < N;j++){
            f[i][j] = F[i][j];
        }
    }
    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 i = 0; i < N; i++) {
                if (F[i][w] == 0) {
                    for (int i2 = 0; i2 < N; i2++) {
                        for (int j2 = 0; j2 < N; j2++) {
                            if (F[i2][j2] == 0) {
                                if (!check(i, w, i2, j2)) {
                                    return 1;
                                }
                            }
                        }
                    }
                }
            if (F[i][e] == 0) {
                for (int i2 = 0; i2 < N; i2++) {
                    for (int j2 = 0; j2 < N; j2++) {
                        if (F[i2][j2] == 0) {
                            if (!check(i, e, i2, j2)) {
                                return 1;
                            }
                        }
                    }
                }
            }
            if (F[n][i] == 0) {
                for (int i2 = 0; i2 < N; i2++) {
                    for (int j2 = 0; j2 < N; j2++) {
                        if (F[i2][j2] == 0) {
                            if (!check(n, i, i2, j2)) {
                                return 1;
                            }
                        }
                    }
                }
            }
            if (F[s][i] == 0) {
                for (int i2 = 0; i2 < N; i2++) {
                    for (int j2 = 0; j2 < N; j2++) {
                        if (F[i2][j2] == 0) {
                            if (!check(s, i, i2, j2)) {
                                return 1;
                            }
                        }
                    }
                }
            }
        }

    return N*N-num;
}


# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 548 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 548 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Incorrect 1 ms 548 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Incorrect 1 ms 548 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Incorrect 1 ms 548 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Incorrect 1 ms 548 KB wrong
3 Halted 0 ms 0 KB -