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

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

달력

면접 대비

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

요약
365일 달력에 일정을 가능한 한 위쪽에 배치한 뒤, 가로로 이어진 날짜를 직사각형으로 묶어 코팅지의 총 넓이를 구한다.
난이도

보통10점 중 6점

유형
구현, 정렬, 시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

수현이는 1년의 날짜가 1일부터 365일로 표시된 달력을 가지고 있다. 수현이는 아주 계획적인 사람이라 올해 일정을 모두 계획해서 달력에 표시해 두었다.

여름이 거의 끝나갈 무렵 장마가 시작되었고, 습기 때문에 달력에 표시한 일정이 지워지려고 한다. 수현이는 일정이 지워지는 것을 막으려고 일정이 있는 곳에만 코팅지를 달력에 붙이려고 한다. 하지만 붙이는 일이 너무 귀찮았던 나머지, 다음과 같은 규칙을 따르기로 했다.

  • 연속된 두 일자에 각각 일정이 1개 이상 있다면 두 일정은 연속되었다고 한다.
  • 연속된 모든 일정은 하나의 직사각형에 포함되어야 한다.
  • 연속된 일정을 모두 감싸는 가장 작은 직사각형의 크기만큼 코팅지를 오린다.

달력은 다음 규칙을 따른다.

  • 일정은 시작 날짜와 종료 날짜를 포함한다.
  • 시작일이 가장 앞선 일정부터 차례대로 채워진다.
  • 시작일이 같을 경우 기간이 긴 일정이 먼저 채워진다.
  • 일정은 가능한 한 가장 위쪽에 배치된다.
  • 일정 하나의 세로 길이는 1이다.
  • 하루의 폭은 1이다.

위 그림과 같이 일정이 주어졌다고 하자. 이때 코팅지의 면적은 아래 파란색 영역과 같다.

이때 코팅지 크기의 합은 3 x 8 + 2 x 2 = 28이다.

일정의 개수와 각 일정의 시작 날짜, 종료 날짜가 주어질 때 수현이가 자르는 코팅지의 면적을 구해 보자.

입력

첫째 줄에 일정의 개수 N이 주어진다. (1 ≤ N ≤ 1000)

둘째 줄부터 일정의 개수만큼 시작 날짜 S와 종료 날짜 E가 주어진다. (1 ≤ S ≤ E ≤ 365)

출력

코팅지의 면적을 출력한다.

예제2

  1. 예제 1

    입력
    7
    2 4
    4 5
    5 6
    5 7
    7 9
    11 12
    12 12
    
    예상 출력
    28
    
  2. 예제 2

    입력
    5
    1 9
    8 9
    4 6
    3 4
    2 5
    
    예상 출력
    36