Submission #39445849


Source Code Expand

#include <iostream>
using namespace std;
// 入力で与えられる変数
int N;
int A[100009], B[100009], C[100009], D[100009];
// 座標 (i+0.5, j+0.5) に置かれている紙の数 T[i][j]
int T[1509][1509];
int main() {
  // 入力
  cin >> N;
  for (int i = 1; i <= N; i++)
    cin >> A[i] >> B[i] >> C[i] >> D[i];
  // 各紙について +1/-1 を加算
  for (int i = 0; i <= 1500; i++) {
    for (int j = 0; j <= 1500; j++)
      T[i][j] = 0;
  }
  for (int i = 1; i <= N; i++) {
    T[A[i]][B[i]] += 1;
    T[A[i]][D[i]] -= 1;
    T[C[i]][B[i]] -= 1;
    T[C[i]][D[i]] += 1;
  }
  // 二次元累積和をとる
  for (int i = 0; i <= 1500; i++) {
    for (int j = 1; j <= 1500; j++)
      T[i][j] = T[i][j - 1] + T[i][j];
  }
  for (int i = 1; i <= 1500; i++) {
    for (int j = 0; j <= 1500; j++)
      T[i][j] = T[i - 1][j] + T[i][j];
  }
  // 面積を数える
  int Answer = 0;
  for (int i = 0; i <= 1500; i++) {
    for (int j = 0; j <= 1500; j++) {
      if (T[i][j] >= 1)
        Answer += 1;
    }
  }
  cout << Answer << endl;
  return 0;
}

Submission Info

Submission Time
Task B09 - Papers
User konaga
Language C++ (GCC 9.2.1)
Score 1000
Code Size 1105 Byte
Status AC
Exec Time 85 ms
Memory 13924 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 1
AC × 7
Set Name Test Cases
Sample sample01.txt
All max00.txt, random00.txt, random01.txt, random02.txt, random03.txt, random04.txt, sample01.txt
Case Name Status Exec Time Memory
max00.txt AC 85 ms 13924 KiB
random00.txt AC 21 ms 12308 KiB
random01.txt AC 18 ms 12380 KiB
random02.txt AC 18 ms 12444 KiB
random03.txt AC 17 ms 12392 KiB
random04.txt AC 18 ms 12376 KiB
sample01.txt AC 18 ms 12412 KiB