만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

삼트리스

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

요약
7열 격자에 표시된 N개의 칸을 모두 채우도록 3x1 막대를 떨어뜨릴 때 필요한 최소 막대 개수를 구한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그리디, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

테트리스보다 덜 알려진 삼트리스 게임을 살펴보자. 이 게임에는 3×13 \times 1 크기의 막대기만 나오고, 화면의 가로 폭은 7열이다. 막대기는 화면 맨 위에서 나타나 아래로 내려오며, 내려오기 전에 회전시킬 수 있다. 세로로 놓은 막대기는 한 열에서 위아래로 붙은 세 칸을 차지하고, 가로로 놓은 막대기는 한 행에서 좌우로 붙은 세 열을 차지한다. 막대기는 바로 아래 칸이 바닥이거나 이미 다른 막대기가 놓인 칸이면 그 자리에서 멈춘다. 가로 막대기는 세 칸 가운데 하나만 막혀도 멈추므로, 그 아래에 다시는 채울 수 없는 빈 칸이 남기도 한다. 한 행이 가득 차도 그 행은 사라지지 않는다.

이 게임의 목표는 테트리스와 다르다. 화면에 지정된 NN개의 칸을 모두 막대기로 채우면 게임이 끝난다. 지정되지 않은 칸이 함께 채워져도 된다. 게임을 끝내는 데 필요한 막대기의 최소 개수를 구하라.

첫 번째 예제를 그림으로 나타내면 다음과 같다.

입력

첫째 줄에 지정된 칸의 개수 NN이 주어진다. (1≤N≤2001 \le N \le 200)

둘째 줄부터 NN개의 줄에 각 칸의 열 번호와 행 번호가 차례로 주어진다. 열 번호는 11 이상 77 이하의 정수이고, 행 번호는 11 이상 10810^8 이하의 정수이다. 화면에서 제일 아래 행의 번호가 11이다.

출력

첫째 줄에 필요한 막대기의 최소 개수를 출력한다.

예제2

  1. 예제 1

    입력
    4
    1 4
    3 4
    6 2
    7 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    7
    5 4
    2 4
    6 4
    1 4
    7 4
    3 4
    4 4
    
    예상 출력
    6