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

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

울타리 칠하기 (small)

면접 대비

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

요약
최대 10개의 제안 중에서 3가지 이하의 색만 써서 1번부터 10000번 구간을 모두 칠하는 최소 제안 수를 구한다.
난이도

보통10점 중 4점

유형
완전 탐색, 구간, 그리디
정답자
아직 제출이 없습니다

문제

울타리를 칠할 사람을 고용해야 한다. 울타리는 1번부터 10000번까지 번호가 붙은 연속된 구획 10000개로 이루어져 있다.

도장공들이 제안을 보내온다. 각 제안은 연속된 구획 구간 하나를 특정 색으로 칠하겠다는 내용이다. 다음 두 조건을 모두 만족하도록 제안 중 일부를 받아들여야 한다.

  • 울타리의 모든 구획이 칠해진다.
  • 울타리를 칠하는 데 쓰인 색이 3가지 이하다.

두 조건을 만족시킬 수 있으면, 받아들여야 하는 제안의 최소 개수를 구한다.

받아들인 두 제안의 구간이 겹쳐도 된다. 색은 문자열이 같을 때만 같은 색이다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스는 다음과 같이 주어진다.

  • 첫 줄에 제안의 개수 NN이 주어진다.
  • 이어지는 NN개의 줄에 제안이 한 줄씩 C A B 형식으로 주어진다. CC는 색이며 길이가 10 이하인 대문자 알파벳 문자열이다. AA는 칠할 첫 구획, BB는 칠할 마지막 구획이고 1≤A≤B≤100001 \le A \le B \le 10000이다.

제한

  • 1≤T≤501 \le T \le 50
  • 1≤N≤101 \le N \le 10

출력

테스트 케이스마다 한 줄씩, 입력에 주어진 순서대로 Case #X: Y 형식으로 출력한다. XX는 테스트 케이스 번호이고 YY는 받아들여야 하는 제안의 최소 개수다. 조건을 만족하는 제안 집합이 없으면 그 줄에 Case #X: IMPOSSIBLE을 출력한다.

힌트

예제 입력의 다섯 테스트 케이스를 설명한다.

  • 첫 번째 케이스에서는 두 제안을 모두 받아들이면 각각 구획 5000개씩 겹치지 않게 울타리 전체를 칠한다.
  • 두 번째 케이스에서는 도장공들의 구간이 겹치지만, 겹치는 것은 허용된다.
  • 세 번째 케이스에서는 네 제안을 모두 받아들이면 울타리 전체를 덮지만 색이 4가지가 되므로 조건을 만족하지 못한다.
  • 네 번째 케이스에서는 4001번 구획을 칠할 수 없다.
  • 다섯 번째 케이스에서는 첫 번째와 두 번째 제안만 받아들여도 울타리 전체가 칠해진다.

예제1

  1. 예제 1

    입력
    5
    2
    BLUE 1 5000
    RED 5001 10000
    3
    BLUE 1 6000
    RED 2000 8000
    WHITE 7000 10000
    4
    BLUE 1 3000
    RED 2000 5000
    ORANGE 4000 8000
    GREEN 7000 10000
    2
    BLUE 1 4000
    RED 4002 10000
    3
    BLUE 1 6000
    RED 4000 10000
    ORANGE 3000 8000
    
    예상 출력
    Case #1: 2
    Case #2: 3
    Case #3: IMPOSSIBLE
    Case #4: IMPOSSIBLE
    Case #5: 2