Submission #1080567

# Submission time Handle Problem Language Result Execution time Memory
1080567 2024-08-29T11:03:57 Z shmax Soccer Stadium (IOI23_soccer) C++17
3.5 / 100
384 ms 39760 KB
#include "soccer.h"
#include "bits/stdc++.h"

using namespace std;
using i32 = int;
#define int long long
#define len(x) (int)(x.size())
#define all(x) x.begin(), x.end()
#define inf 1000'000'000'000'000'000LL
#define bit(x, i) (((x) >> i) & 1)


template<typename T>
using vec = vector<T>;

i32 biggest_stadium(i32 n, std::vector<std::vector<i32>> F) {
    int cnt = 0;
    set<int> columns;
    set<int> rows;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cnt += F[i][j] == 0;
            if (F[i][j] == 0) {
                columns.insert(i);
                rows.insert(j);
            }
        }
    }

    vec<vec<bool>> used(n, vec<bool>(n, false));
    for (int i = 1; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (used[i][j]) continue;
            if (!F[i][j]) continue;
            if (F[i - 1][j] == 0) {
                for (int k = i; k < n; k++) {
                    if (F[k][j] == 0) return 0;
                    used[k][j] = true;
                }
            }
        }
    }
    used = vec<vec<bool>>(n, vec<bool>(n, false));
    for (int i = 0; i < n; i++) {
        for (int j = 1; j < n; j++) {
            if (used[i][j]) continue;
            if (!F[i][j]) continue;
            if (F[i][j - 1] == 0) {
                for (int k = j; k < n; k++) {
                    if (F[i][k] == 0) return 0;
                    used[i][k] = true;
                }
            }
        }
    }

    vec<vec<int>> pref(n + 1, vec<int>(n + 1, 0));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            pref[i + 1][j + 1] = pref[i][j + 1] + pref[i + 1][j] - pref[i][j] + F[i][j];
        }
    }

    auto get = [&](int i1, int j1, int i2, int j2) {
        return pref[i2 + 1][j2 + 1] - pref[i2 + 1][j1] - pref[i1][j2 + 1] + pref[i1][j1];
    };

    vec<pair<int, int>> X(n, {inf, -inf});
    vec<pair<int, int>> Y(n, {inf, -inf});
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (F[i][j]) continue;
            X[i].first = min(X[i].first, j);
            X[i].second = max(X[i].first, j);
            Y[j].first = min(Y[j].first, i);
            Y[j].second = max(Y[j].first, i);
        }
    }

    for (int i: rows) {
        for (int j: columns) {
            if (F[i][j] == 0) continue;
            int i1 = Y[j].first;
            int i2 = Y[j].second;
            int j1 = X[i].first;
            int j2 = X[i].second;
            if(get(i1,j1,i2,j2) != 0)
                return 0;
        }
    }

    return cnt;
}
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB ok
2 Correct 0 ms 344 KB ok
3 Correct 1 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 1 ms 348 KB partial
8 Partially correct 20 ms 2908 KB partial
9 Partially correct 384 ms 39760 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB ok
2 Correct 0 ms 344 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 344 KB partial
8 Correct 0 ms 348 KB ok
9 Correct 1 ms 344 KB ok
10 Partially correct 0 ms 344 KB partial
11 Partially correct 0 ms 348 KB partial
12 Partially correct 0 ms 348 KB partial
13 Correct 0 ms 348 KB ok
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 344 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 344 KB partial
9 Correct 0 ms 348 KB ok
10 Correct 1 ms 344 KB ok
11 Partially correct 0 ms 344 KB partial
12 Partially correct 0 ms 348 KB partial
13 Partially correct 0 ms 348 KB partial
14 Correct 0 ms 348 KB ok
15 Partially correct 0 ms 348 KB partial
16 Partially correct 0 ms 348 KB partial
17 Partially correct 0 ms 344 KB partial
18 Partially correct 0 ms 344 KB partial
19 Partially correct 0 ms 348 KB partial
20 Runtime error 1 ms 348 KB Execution killed with signal 11
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 344 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 344 KB partial
11 Correct 0 ms 348 KB ok
12 Correct 1 ms 344 KB ok
13 Partially correct 0 ms 344 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 Partially correct 0 ms 348 KB partial
18 Partially correct 0 ms 348 KB partial
19 Partially correct 0 ms 344 KB partial
20 Partially correct 0 ms 344 KB partial
21 Partially correct 0 ms 348 KB partial
22 Runtime error 1 ms 348 KB Execution killed with signal 11
23 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 344 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 344 KB partial
11 Correct 0 ms 348 KB ok
12 Correct 1 ms 344 KB ok
13 Partially correct 0 ms 344 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 Partially correct 0 ms 348 KB partial
18 Partially correct 0 ms 348 KB partial
19 Partially correct 0 ms 344 KB partial
20 Partially correct 0 ms 344 KB partial
21 Partially correct 0 ms 348 KB partial
22 Runtime error 1 ms 348 KB Execution killed with signal 11
23 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 348 KB partial
2 Correct 0 ms 344 KB ok
3 Correct 0 ms 344 KB ok
4 Correct 1 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Correct 0 ms 348 KB ok
7 Partially correct 0 ms 348 KB partial
8 Partially correct 1 ms 348 KB partial
9 Partially correct 20 ms 2908 KB partial
10 Partially correct 384 ms 39760 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 344 KB partial
16 Correct 0 ms 348 KB ok
17 Correct 1 ms 344 KB ok
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 Correct 0 ms 348 KB ok
22 Partially correct 0 ms 348 KB partial
23 Partially correct 0 ms 348 KB partial
24 Partially correct 0 ms 344 KB partial
25 Partially correct 0 ms 344 KB partial
26 Partially correct 0 ms 348 KB partial
27 Runtime error 1 ms 348 KB Execution killed with signal 11
28 Halted 0 ms 0 KB -