Submission #844990

# Submission time Handle Problem Language Result Execution time Memory
844990 2023-09-06T10:26:44 Z JoksimKaktus Soccer Stadium (IOI23_soccer) C++17
3.5 / 100
267 ms 31828 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 && (j > i))){
                        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(j < i){
                        way1m = false;
                    }
                    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 && (j > i))){
                            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(j < i){
                                way2m = false;
                            }
                            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 && (j > i))){
                        for(int k = w;k <= e;k++){
                            if(F[i][k] == 1){
                                way1 = false;
                                break;
                            }
                        }
                        for(int k = w;k >= e;k--){
                            if(F[i][k] == 1){
                                way1m = false;
                                break;
                            }
                        }
                    }if(j < i){
                        way1m = false;
                    }
                    if(!way1 && !way1m){
                        for(int k = w;k <= e;k++){
                            if(F[j][k] == 1){
                                way2 = false;
                                break;
                            }
                        }
                        for(int k = w;k >= e;k--){
                            if(F[j][k] == 1){
                                way2m = false;
                                break;
                            }
                        }
                        if(way2 || (way2m && (j > i))){
                            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(j < i){
                                way2m = false;
                            }
                            if(!way2 && !way2m){
                                return 1;
                            }
                        }else{
                            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 Correct 0 ms 344 KB ok
2 Correct 0 ms 348 KB ok
3 Correct 1 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 344 KB ok
6 Partially correct 0 ms 600 KB partial
7 Partially correct 2 ms 344 KB partial
8 Partially correct 15 ms 2204 KB partial
9 Partially correct 267 ms 31828 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB ok
2 Correct 0 ms 348 KB ok
3 Partially correct 0 ms 344 KB partial
4 Partially correct 0 ms 344 KB partial
5 Partially correct 0 ms 348 KB partial
6 Partially correct 0 ms 348 KB partial
7 Partially correct 0 ms 348 KB partial
8 Correct 0 ms 348 KB ok
9 Correct 0 ms 348 KB ok
10 Partially correct 0 ms 348 KB partial
11 Partially correct 0 ms 348 KB partial
12 Partially correct 0 ms 344 KB partial
13 Correct 0 ms 348 KB ok
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 348 KB ok
4 Partially correct 0 ms 344 KB partial
5 Partially correct 0 ms 344 KB partial
6 Partially correct 0 ms 348 KB partial
7 Partially correct 0 ms 348 KB partial
8 Partially correct 0 ms 348 KB partial
9 Correct 0 ms 348 KB ok
10 Correct 0 ms 348 KB ok
11 Partially correct 0 ms 348 KB partial
12 Partially correct 0 ms 348 KB partial
13 Partially correct 0 ms 344 KB partial
14 Correct 0 ms 348 KB ok
15 Partially correct 0 ms 348 KB partial
16 Partially correct 0 ms 344 KB partial
17 Partially correct 0 ms 348 KB partial
18 Partially correct 0 ms 348 KB partial
19 Partially correct 0 ms 344 KB partial
20 Correct 0 ms 344 KB ok
21 Correct 0 ms 344 KB ok
22 Incorrect 1 ms 344 KB wrong
23 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 1 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 0 ms 344 KB partial
7 Partially correct 0 ms 344 KB partial
8 Partially correct 0 ms 348 KB partial
9 Partially correct 0 ms 348 KB partial
10 Partially correct 0 ms 348 KB partial
11 Correct 0 ms 348 KB ok
12 Correct 0 ms 348 KB ok
13 Partially correct 0 ms 348 KB partial
14 Partially correct 0 ms 348 KB partial
15 Partially correct 0 ms 344 KB partial
16 Correct 0 ms 348 KB ok
17 Partially correct 0 ms 348 KB partial
18 Partially correct 0 ms 344 KB partial
19 Partially correct 0 ms 348 KB partial
20 Partially correct 0 ms 348 KB partial
21 Partially correct 0 ms 344 KB partial
22 Correct 0 ms 344 KB ok
23 Correct 0 ms 344 KB ok
24 Incorrect 1 ms 344 KB wrong
25 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 1 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Partially correct 0 ms 344 KB partial
7 Partially correct 0 ms 344 KB partial
8 Partially correct 0 ms 348 KB partial
9 Partially correct 0 ms 348 KB partial
10 Partially correct 0 ms 348 KB partial
11 Correct 0 ms 348 KB ok
12 Correct 0 ms 348 KB ok
13 Partially correct 0 ms 348 KB partial
14 Partially correct 0 ms 348 KB partial
15 Partially correct 0 ms 344 KB partial
16 Correct 0 ms 348 KB ok
17 Partially correct 0 ms 348 KB partial
18 Partially correct 0 ms 344 KB partial
19 Partially correct 0 ms 348 KB partial
20 Partially correct 0 ms 348 KB partial
21 Partially correct 0 ms 344 KB partial
22 Correct 0 ms 344 KB ok
23 Correct 0 ms 344 KB ok
24 Incorrect 1 ms 344 KB wrong
25 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 1 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Correct 0 ms 344 KB ok
7 Partially correct 0 ms 600 KB partial
8 Partially correct 2 ms 344 KB partial
9 Partially correct 15 ms 2204 KB partial
10 Partially correct 267 ms 31828 KB partial
11 Partially correct 0 ms 344 KB partial
12 Partially correct 0 ms 344 KB partial
13 Partially correct 0 ms 348 KB partial
14 Partially correct 0 ms 348 KB partial
15 Partially correct 0 ms 348 KB partial
16 Correct 0 ms 348 KB ok
17 Correct 0 ms 348 KB ok
18 Partially correct 0 ms 348 KB partial
19 Partially correct 0 ms 348 KB partial
20 Partially correct 0 ms 344 KB partial
21 Correct 0 ms 348 KB ok
22 Partially correct 0 ms 348 KB partial
23 Partially correct 0 ms 344 KB partial
24 Partially correct 0 ms 348 KB partial
25 Partially correct 0 ms 348 KB partial
26 Partially correct 0 ms 344 KB partial
27 Correct 0 ms 344 KB ok
28 Correct 0 ms 344 KB ok
29 Incorrect 1 ms 344 KB wrong
30 Halted 0 ms 0 KB -