아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

양철 절단기

시간 제한1초메모리 제한128 MB

요약
판 안에서 만든 최대 100개의 가로 또는 세로 절단이 끝난 뒤, 판의 경계에 닿지 않는 닫힌 영역인 구멍의 개수를 센다.
난이도

어려움10점 중 8점

유형
기하, 그래프, DFS, 구현
정답자
아직 제출이 없습니다

문제

양철 절단 공장에는 양철판에서 부품을 잘라내는 기계가 있다. 이 기계의 매우 날카로운 칼날은 양철판에 가로 또는 세로 방향의 직선 절단을 낼 수 있다. 하나의 절단 작업은 이러한 절단들이 차례로 이어진 것이다. 각 절단은 두 끝점으로 주어지며, 두 끝점은 항상 양철판 내부에 있다. 절단이 진행되면서 양철판의 일부 조각이 떨어져 나갈 수 있고, 그 결과 판에 구멍이 생길 수 있다.

주어진 절단들을 모두 수행한 뒤 판에 남는 구멍의 개수를 구하는 프로그램을 작성하라. 단, 하나의 절단선 그 자체는 구멍으로 세지 않는다.

다음은 절단 후 나타날 수 있는 몇 가지 상황의 예이다.

구멍 2개구멍 2개구멍 1개구멍 1개

입력

입력은 여러 개의 블록으로 이루어진다. 마지막 블록을 제외한 각 블록은 하나의 절단 작업을 나타낸다. 블록의 첫 줄에는 절단의 개수를 나타내는 정수 NN (N≤100N \le 100)이 주어진다. 이어지는 NN개의 줄은 각각 하나의 절단을 X1 Y1 X2 Y2X_1\ Y_1\ X_2\ Y_2 형식으로 나타내며, (X1,Y1)(X_1, Y_1)과 (X2,Y2)(X_2, Y_2)는 절단의 두 끝점 좌표이고 공백 하나로 구분된다. 모든 좌표는 정수이며, 각 절단은 항상 가로 또는 세로 방향(xx축 또는 yy축에 평행)이다.

마지막 블록은 00 하나만 있는 한 줄로 이루어지며, 절단 작업을 나타내지 않는다.

출력

입력의 각 블록(마지막 종료 블록 제외)마다, 그 블록의 모든 절단을 수행한 뒤 판에 남는 구멍의 개수를 한 줄에 하나씩 출력한다.

마지막 종료 블록에 대해서는 아무것도 출력하지 않는다.

예제1

  1. 예제 1

    입력
    4
    0 1 1 1
    1 1 1 0
    1 0 0 0
    0 0 0 1
    2
    0 1 2 1
    1 2 1 0
    0
    
    예상 출력
    1
    0