답안 #1056162

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1056162 2024-08-13T08:00:48 Z Ignut 축구 경기장 (IOI23_soccer) C++17
1.5 / 100
177 ms 51748 KB
/* Ignut
started: 13.08.2024
now: 13.08.2024
████████████████████████████████████████████████████████████████████
████████████████████████████████    ████████████████████████████████
██████████████████████████████        ██████████████████████████████
██████      ██████████████████        ██████████████████      ██████
██████          ██████████████        ██████████████          ██████
██████      ██    ████████████        ████████████    ██      ██████
██████      ████    ██████████        ██████████    ████      ██████
██████      ████      ██████████    ██████████      ████      ██████
██████      ████      ██████████    ██████████    ██████      ██████
██████      ██████    ██████████    ██████████    ██████      ██████
██████      ██████    ████████        ████████    ██████      ██████
██████      ██████      ██████        ██████      ██████      ██████
██████      ████        ████            ████        ████      ██████
██████            ██████████    ████    ██████████            ██████
██████      ██      ██████    ████████    ██████      ██      ██████
██████      ██████            ████████            ██████      ██████
██████                    ██            ██                    ██████
██████████████████████      ████    ████      ██████████████████████
████████████████████████      ██    ██      ████████████████████████
██████████████████████████                ██████████████████████████
██████████████████████████████        ██████████████████████████████
████████████████████████████████████████████████████████████████████
*/

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int MAXN = 2222;
int n;
vector<vector<int>> f;

bool used[MAXN][MAXN];

vector<pair<int, int>> delta = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};

bool Good(int i, int j) {
    return i >= 0 && j >= 0 && i < n && j < n && f[i][j] == 0 && !used[i][j];
}

int cnt = 0;
void dfs(int i, int j) {
    cnt ++;
    used[i][j] = true;
    for (auto [di, dj] : delta) {
        int ci = i + di, cj = j + dj;
        if (Good(ci, cj)) {
            dfs(ci, cj);
        }
    }
}

int biggest_stadium(int N, vector<vector<int>> F) {
    // for (int i = 0; i < N; i ++) {
    //     for (int j = 0; j < N; j ++) {
    //         if (F[i][j] == 0) continue;
    //         int mn = N * N;
    //         mn = min(mn, (i + 1) * (j + 1));
    //         mn = min(mn, (N - i) * (N - j));
    //         mn = min(mn, (N - i) * (j + 1));
    //         mn = min(mn, (i + 1) * (N - j));
    //         return N * N - mn;
    //     }
    // }
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < N; j ++)
            used[i][j] = false;

    n = N;
    f = F;
    for (int i = 0; i < N; i ++) {
        int first = -1, last = -1, cnt = 0;
        for (int j = 0; j < N; j ++) {
            if (F[i][j] == 1) continue;
            if (first == -1) first = j;
            last = j;
            cnt ++;
        }
        if (cnt > 0 && cnt != last - first + 1) return 1;
    }
    for (int j = 0; j < N; j ++) {
        int first = -1, last = -1, cnt = 0;
        for (int i = 0; i < N; i ++) {
            if (F[i][j] == 1) continue;
            if (first == -1) first = i;
            last = i;
            cnt ++;
        }
        if (cnt > 0 && cnt != last - first + 1) return 1;
    }

    int i0, j0;
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < N; j ++)
            if (F[i][j] == 0)
                i0 = i, j0 = j;
    cnt = 0;
    dfs(i0, j0);

    int sum = N * N;
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < N; j ++)
            sum -= F[i][j];

    if (cnt != sum) return 1;
    
    return sum;
}

Compilation message

soccer.cpp: In function 'int biggest_stadium(int, std::vector<std::vector<int> >)':
soccer.cpp:102:8: warning: 'i0' may be used uninitialized in this function [-Wmaybe-uninitialized]
  102 |     dfs(i0, j0);
      |     ~~~^~~~~~~~
soccer.cpp:102:8: warning: 'j0' may be used uninitialized in this function [-Wmaybe-uninitialized]
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 344 KB partial
# 결과 실행 시간 메모리 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 Correct 1 ms 348 KB ok
6 Partially correct 1 ms 348 KB partial
7 Partially correct 1 ms 600 KB partial
8 Partially correct 11 ms 4444 KB partial
9 Partially correct 177 ms 51748 KB partial
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB ok
2 Correct 0 ms 348 KB ok
3 Partially correct 1 ms 344 KB partial
4 Partially correct 0 ms 344 KB partial
5 Incorrect 0 ms 348 KB wrong
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 0 ms 348 KB ok
4 Partially correct 1 ms 344 KB partial
5 Partially correct 0 ms 344 KB partial
6 Incorrect 0 ms 348 KB wrong
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 344 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 1 ms 344 KB partial
7 Partially correct 0 ms 344 KB partial
8 Incorrect 0 ms 348 KB wrong
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 344 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 1 ms 344 KB partial
7 Partially correct 0 ms 344 KB partial
8 Incorrect 0 ms 348 KB wrong
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 344 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 Correct 1 ms 348 KB ok
7 Partially correct 1 ms 348 KB partial
8 Partially correct 1 ms 600 KB partial
9 Partially correct 11 ms 4444 KB partial
10 Partially correct 177 ms 51748 KB partial
11 Partially correct 1 ms 344 KB partial
12 Partially correct 0 ms 344 KB partial
13 Incorrect 0 ms 348 KB wrong
14 Halted 0 ms 0 KB -