만드는 중입니다

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

시간표 만들기

면접 대비

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

요약
그룹마다 과목을 최대 하나씩 골라 시간이 겹치지 않고 학점 합이 정확히 22가 되는 시간표의 개수를 구합니다.
난이도

보통10점 중 4점

유형
백트래킹, 완전 탐색, 구간
정답자
아직 제출이 없습니다

문제

찬솔이는 이번 학기에 22학점을 들을 계획이다. 시간표를 만들기 위해 찬솔이는 들을 예정인 과목들을 아래와 같이 그룹으로 정리했다.

  • 그룹 A: [전공종합설계1(가), 전공종합설계2(나), 컴퓨터공학특강1]
  • 그룹 B: [네트워크프로그래밍(가), 네트워크프로그래밍(나)]
  • 그룹 C: [멀티미디어응용]
  • 그룹 D: [SW융합세미나1, 정보기술세미나1]
  • 그룹 E: [파일처리(가), 파일처리(나)]
  • 그룹 F: [디지털공학(나), 디지털공학(다)]
  • 그룹 G: [문제해결]
  • 그룹 H: [프로그래밍언어(가)]

각 그룹에서는 최대 하나의 강의만 골라 시간표를 구성한다. 모든 그룹에서 강의를 하나씩 고를 필요는 없다. 한 그룹에 학점이 다른 강의가 섞여 있을 수도 있다. 각 강의에는 요일, 시작 시각, 종료 시각이 있으며, 선택한 강의끼리는 진행 시간이 겹치면 안 된다. 요일이 다르거나, 한 강의가 끝나는 순간 다른 강의가 시작하는 경우는 시간이 겹치지 않는다. 모든 강의는 일주일에 한 번만 진행되므로, 입력으로 주어지는 강의는 모두 서로 다른 강의이다.

찬솔이는 선택한 강의의 학점 합이 정확히 22가 되는 시간표를 만들 수 있는 경우의 수가 궁금해졌다.

입력

첫째 줄에 그룹의 개수 NN이 주어진다. 둘째 줄부터는 NN개의 그룹과 각 그룹에 포함된 과목의 정보가 주어진다. 그룹에 포함된 과목의 개수 AiA_i가 먼저 주어지고, 이어서 AiA_i개의 줄에 걸쳐 각 과목의 학점 수 CC, 요일 DD, 강의 시작 시각 SS, 강의 종료 시각 EE가 공백으로 구분되어 주어진다. 강의 시작 시각 SS와 종료 시각 EE는 HH:MM 형식으로 주어지며, HH는 시, MM은 분이다.

출력

주어진 입력으로 조건을 만족하면서 선택한 강의의 학점 합이 정확히 22가 되는 시간표의 개수를 출력한다.

제한

  • 1≤N≤151\le N\le 15
  • 1≤Ai≤151\le A_i\le 15
  • ∑i=1NAi≤15\sum_{i=1}^{N}A_i\le 15
  • 1≤C≤221\le C\le 22
  • 1≤D≤71\le D\le 7
  • 00 ≤\le HH ≤\le 23
  • 00 ≤\le MM ≤\le 59
  • S<ES<E이다. 즉, 강의가 자정을 넘어서까지 진행되거나 시작하자마자 종료하는 경우는 없다.
  • 입력으로 주어지는 수는 모두 정수이다.

예제1

  1. 예제 1

    입력
    8
    3
    3 1 13:30 14:45
    3 1 15:00 16:15
    2 4 14:00 14:50
    2
    3 2 10:30 11:45
    3 2 12:00 13:15
    1
    3 2 15:00 16:15
    2
    1 2 16:30 17:20
    1 4 16:30 17:20
    2
    3 4 12:00 13:15
    3 4 15:00 16:15
    2
    3 1 09:00 10:15
    3 1 10:30 11:45
    1
    3 1 09:00 10:15
    1
    3 1 13:30 14:45
    
    예상 출력
    8