Submission #991766

# Submission time Handle Problem Language Result Execution time Memory
991766 2024-06-03T06:10:31 Z stdfloat Soccer Stadium (IOI23_soccer) C++17
6 / 100
1704 ms 47384 KB
#include <bits/stdc++.h>
#include "soccer.h"
using namespace std;

#define pii pair<int, int>

int n, mx;

vector<vector<int>> a, v;

void f(int x) {
    if (x == n * n) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (!v[i][j]) continue;

                vector<vector<bool>> vis(n, vector<bool>(n));
                vis[i][j] = true;
                for (int z = 0; z < 2; z++) {
                    for (int k = 0; k < n; k++) {
                        for (int l = 0; l < n; l++) {
                            if (!vis[k][l]) continue;

                            for (int m = l - 1; m >= 0 && v[k][m]; m--)
                                vis[k][m] = true;
                            for (int m = l + 1; m < n && v[k][m]; m++)
                                v[k][m] = true;

                            for (int m = k - 1; m >= 0 && v[m][l]; m--)
                                vis[m][l] = true;
                            for (int m = k + 1; m < n && v[m][l]; m++)
                                vis[m][l] = true;
                        }
                    }
                }

                int cnt = 0;
                for (int k = 0; k < n; k++) {
                    for (int l = 0; l < n; l++) {
                        if (v[k][l]) {
                            cnt++;
                            if (!vis[k][l]) return;
                        }
                    }
                }

                mx = max(mx, cnt);
                return;
            }
        }

        return;
    }

    for (int i = 0; i < 2; i++) {
        if (i && a[x / n][x % n]) return;

        v[x / n][x % n] = i;
        f(x + 1);
    }
}

int biggest_stadium(int N, vector<vector<int>> F) {
    n = N; a = F;

    int cnt = 0;
    for (auto i : a)
        cnt += count(i.begin(), i.end(), 1);

    if (!cnt) return n * n;
    else if (cnt == 1) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (a[i][j] == 1)
                    return n * n - min({(n - i) * (n - j), (n - i) * (j + 1), (i + 1) * (n - j), (i + 1) * (j + 1)});
            }
        }
    }

    v.assign(n, vector<int>(n));
    f(0);

    return mx;
}
# Verdict Execution time Memory Grader output
1 Partially correct 1704 ms 348 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB ok
2 Correct 1 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 Correct 0 ms 348 KB ok
7 Correct 1 ms 348 KB ok
8 Correct 13 ms 3220 KB ok
9 Correct 205 ms 47384 KB ok
# Verdict Execution time Memory Grader output
1 Correct 0 ms 600 KB ok
2 Correct 1 ms 348 KB ok
3 Partially correct 1 ms 344 KB partial
4 Partially correct 0 ms 348 KB partial
5 Partially correct 1 ms 348 KB partial
6 Correct 0 ms 348 KB ok
7 Partially correct 0 ms 348 KB partial
8 Incorrect 0 ms 348 KB wrong
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1704 ms 348 KB partial
2 Correct 0 ms 600 KB ok
3 Correct 1 ms 348 KB ok
4 Partially correct 1 ms 344 KB partial
5 Partially correct 0 ms 348 KB partial
6 Partially correct 1 ms 348 KB partial
7 Correct 0 ms 348 KB ok
8 Partially correct 0 ms 348 KB partial
9 Incorrect 0 ms 348 KB wrong
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1704 ms 348 KB partial
2 Correct 0 ms 600 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 1 ms 344 KB partial
7 Partially correct 0 ms 348 KB partial
8 Partially correct 1 ms 348 KB partial
9 Correct 0 ms 348 KB ok
10 Partially correct 0 ms 348 KB partial
11 Incorrect 0 ms 348 KB wrong
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1704 ms 348 KB partial
2 Correct 0 ms 600 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 1 ms 344 KB partial
7 Partially correct 0 ms 348 KB partial
8 Partially correct 1 ms 348 KB partial
9 Correct 0 ms 348 KB ok
10 Partially correct 0 ms 348 KB partial
11 Incorrect 0 ms 348 KB wrong
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1704 ms 348 KB partial
2 Correct 0 ms 600 KB ok
3 Correct 1 ms 348 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 0 ms 348 KB ok
6 Correct 0 ms 348 KB ok
7 Correct 0 ms 348 KB ok
8 Correct 1 ms 348 KB ok
9 Correct 13 ms 3220 KB ok
10 Correct 205 ms 47384 KB ok
11 Partially correct 1 ms 344 KB partial
12 Partially correct 0 ms 348 KB partial
13 Partially correct 1 ms 348 KB partial
14 Correct 0 ms 348 KB ok
15 Partially correct 0 ms 348 KB partial
16 Incorrect 0 ms 348 KB wrong
17 Halted 0 ms 0 KB -