Submission #959532

# Submission time Handle Problem Language Result Execution time Memory
959532 2024-04-08T12:05:33 Z nguyentunglam Soccer Stadium (IOI23_soccer) C++17
1.5 / 100
257 ms 59580 KB
#include "soccer.h"
#include<bits/stdc++.h>
using namespace std;

const int N = 2010;

int n;

bool a[N][N];

vector<int> arr[N];

int check_valid() {
  for(int col = 0; col < n; col++) {
    for(int row = 0; row < n; row++) if (a[row][col] == 0) arr[col].push_back(row);
  }
  int st = 0;
  while (st < n && arr[st].empty()) st++;
  if (st == n) return 0;
  bool tie = 0;
  int prel = 0, prer = 0, cnt = 0, _cnt = 0;
  for(int i = st; i < n; i++) {
    if (arr[i].empty()) break;
    int l = arr[i][0], r = arr[i].back();
    cnt += arr[i].size();
    if (r - l + 1 != arr[i].size()) return 0;
    if (i == st) {
      prel = l;
      prer = r;
      continue;
    }
    if (l < prel && r < prer) return 0;
    if (l > prel && r > prer) return 0;
    if (l + r < prel + prer) {
      if (tie == 0) tie = 1;
    }
    if (l + r > prel + prer) {
      if (tie) return 0;
    }
  }
  for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) _cnt += a[i][j] ^ 1;
  if (cnt != _cnt) return 0;
  return cnt;
}

int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
  n = N;
  for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) a[i][j] = F[i][j];
  return check_valid();
}

#ifdef ngu
int main()
{
  freopen ("task.inp", "r", stdin);
  freopen ("task.out", "w", stdout);
    int N;
    assert(1 == scanf("%d", &N));
    std::vector<std::vector<int>> F(N, std::vector<int>(N));
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            assert(1 == scanf("%d", &F[i][j]));
        }
    }
    fclose(stdin);

    int res = biggest_stadium(N, F);

    printf("%d\n", res);
    fclose(stdout);
    return 0;
}
#endif // ngu

Compilation message

soccer.cpp: In function 'int check_valid()':
soccer.cpp:26:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     if (r - l + 1 != arr[i].size()) return 0;
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 1 ms 344 KB ok
3 Correct 0 ms 348 KB ok
4 Correct 1 ms 344 KB ok
5 Correct 1 ms 348 KB ok
6 Partially correct 0 ms 348 KB partial
7 Partially correct 1 ms 604 KB partial
8 Partially correct 17 ms 4792 KB partial
9 Partially correct 257 ms 59580 KB partial
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB ok
2 Correct 1 ms 344 KB ok
3 Incorrect 0 ms 348 KB wrong
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 1 ms 344 KB ok
4 Incorrect 0 ms 348 KB wrong
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 1 ms 344 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 1 ms 344 KB ok
6 Incorrect 0 ms 348 KB wrong
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 1 ms 344 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 1 ms 344 KB ok
6 Incorrect 0 ms 348 KB wrong
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 344 KB partial
2 Correct 0 ms 348 KB ok
3 Correct 1 ms 344 KB ok
4 Correct 0 ms 348 KB ok
5 Correct 1 ms 344 KB ok
6 Correct 1 ms 348 KB ok
7 Partially correct 0 ms 348 KB partial
8 Partially correct 1 ms 604 KB partial
9 Partially correct 17 ms 4792 KB partial
10 Partially correct 257 ms 59580 KB partial
11 Incorrect 0 ms 348 KB wrong
12 Halted 0 ms 0 KB -