답안 #667885

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
667885 2022-12-02T09:16:47 Z 600Mihnea 보물 찾기 (CEOI13_treasure2) C++17
33 / 100
2 ms 340 KB
#include "treasure.h"
#include <bits/stdc++.h>

using namespace std;

const int N = 100 + 7;
int s1[N][N], s2[N][N];
bool deja = 0;
bool ok;
int n;

int pref(int r, int c)
{
  if (r <= 0 || c <= 0)
  {
    return 0;
  }
  if (s1[r][c] == -1)
  {
    ok = 0;
  }
  return s1[r][c];
}

int suf(int r, int c)
{
  if (r > n || c > n)
  {
    return 0;
  }
  if (s2[r][c] == -1)
  {
    ok = 0;
  }
  return s2[r][c];
}

int get(int r, int c)
{
  ok = 1;
  int spref = pref(r, c) - pref(r - 1, c) - pref(r, c - 1) + pref(r - 1, c - 1);

  if (ok)
  {
    return spref;
  }

  ok = 1;

  int ssuf = suf(r, c) - suf(r + 1, c) - suf(r, c + 1) + suf(r + 1, c + 1);

  if (ok)
  {
    return ssuf;
  }

  cout << "bad cell " << r << " " << c << "\n";
  return 0;
}



void findTreasure(int nn)
{
  n = nn;
  for (int i = 0; i < N; i++)
  {
    for (int j = 0; j < N; j++)
    {
      s1[i][j] = s2[i][j] = -1;
    }
  }
  assert(deja == 0);
  deja = 1;
  for (int i = 1; i <= n; i++)
  {
    for (int j = 1; j <= n; j++)
    {
      if (i <= n / 2 + 1)
      {
        s2[i][j] = countTreasure(i, j, n, n);
      }
      if (i >= n / 2 - 1)
      {
        s1[i][j] = countTreasure(1, 1, i, j);
      }
    }
  }
  for (int i = 1; i <= n; i++)
  {
    for (int j = 1; j <= n; j++)
    {
      if (get(i, j))
      {
        Report(i, j);
      }
    }
  }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 340 KB Output isn't correct - N = 5, K = 635, score = 0
2 Partially correct 0 ms 340 KB Output is partially correct - N = 10, K = 7960, score = 1
3 Partially correct 0 ms 340 KB Output is partially correct - N = 15, K = 37380, score = 4
4 Partially correct 0 ms 340 KB Output is partially correct - N = 16, K = 47800, score = 4
5 Partially correct 1 ms 340 KB Output is partially correct - N = 55, K = 5992360, score = 4
6 Partially correct 1 ms 340 KB Output is partially correct - N = 66, K = 12328800, score = 4
7 Partially correct 1 ms 340 KB Output is partially correct - N = 77, K = 22718003, score = 4
8 Partially correct 1 ms 340 KB Output is partially correct - N = 88, K = 38592532, score = 4
9 Partially correct 1 ms 340 KB Output is partially correct - N = 99, K = 61622946, score = 4
10 Partially correct 2 ms 340 KB Output is partially correct - N = 100, K = 64130350, score = 4