提出 #17978768


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);

  ll H; cin >> H;
  ll W; cin >> W;
  ll N; cin >> N;
  ll M; cin >> M;
  vector<vector<ll>> cells(H + 2, vector<ll>(W + 2, 0));
  vector<vector<ll>> lr(H + 2, vector<ll>(W + 2, 0));
  vector<vector<ll>> ud(H + 2, vector<ll>(W + 2, 0));
  for (ll i = 0; i < N; i++) {
    ll A; cin >> A;
    ll B; cin >> B;
    cells[A][B] = 1;
    lr[A][B] = 1;
    ud[A][B] = 1;
  }
  for (ll j = 0; j < M; j++) {
    ll C; cin >> C;
    ll D; cin >> D;
    cells[C][D] = -1;
  }

  for (ll i = 1; i <= H; i++) {
    for (ll j = 1; j <= W; j++) {
      if (cells[i][j] == -1) continue;
      if (lr[i][j - 1] == 1) lr[i][j] = 1;
      if (cells[i][j - 1] == 1) lr[i][j] = 1;
    }
    for (ll j = W; j >= 1; j--) {
      if (cells[i][j] == -1) continue;
      if (lr[i][j + 1] == 1) lr[i][j] = 1;
      if (cells[i][j + 1] == 1) lr[i][j] = 1;
    }
  }

  for (ll i = 1; i <= W; i++) {
    for (ll j = 1; j <= H; j++) {
      if (cells[j][i] == -1) continue;
      if (ud[j - 1][i] == 1) ud[j][i] = 1;
      if (cells[j - 1][i] == 1) ud[j][i] = 1;
    }
    for (ll j = H; j >= 1; j--) {
      if (cells[j][i] == -1) continue;
      if (ud[j + 1][i] == 1) ud[j][i] = 1;
      if (cells[j + 1][i] == 1) ud[j][i] = 1;
    }
  }

  ll ans = 0;
  for (ll i = 1; i <= H; i++) {
    for (ll j = 1; j <= W; j++) {
      if (lr[i][j] > 0 || ud[i][j] > 0) ans++;
    }
  }
  cout << ans << '\n';
  return 0;
}

提出情報

提出日時
問題 E - Akari
ユーザ nakaken88
言語 C++ (GCC 9.2.1)
得点 500
コード長 1576 Byte
結果 AC
実行時間 231 ms
メモリ 56252 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 20
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All handmade_00.txt, max_random_00.txt, max_random_01.txt, max_random_02.txt, max_random_03.txt, max_random_04.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, sample_01.txt, sample_02.txt, sample_03.txt, surrounded_00.txt
ケース名 結果 実行時間 メモリ
handmade_00.txt AC 7 ms 3576 KiB
max_random_00.txt AC 209 ms 56148 KiB
max_random_01.txt AC 209 ms 56252 KiB
max_random_02.txt AC 210 ms 56112 KiB
max_random_03.txt AC 208 ms 56220 KiB
max_random_04.txt AC 201 ms 56236 KiB
random_00.txt AC 231 ms 56196 KiB
random_01.txt AC 226 ms 56220 KiB
random_02.txt AC 3 ms 3688 KiB
random_03.txt AC 4 ms 3804 KiB
random_04.txt AC 107 ms 20260 KiB
random_05.txt AC 109 ms 39484 KiB
random_06.txt AC 113 ms 29248 KiB
random_07.txt AC 163 ms 35324 KiB
random_08.txt AC 18 ms 6344 KiB
random_09.txt AC 138 ms 24760 KiB
sample_01.txt AC 2 ms 3520 KiB
sample_02.txt AC 2 ms 3608 KiB
sample_03.txt AC 2 ms 3584 KiB
surrounded_00.txt AC 211 ms 56240 KiB