선배님 밥 사주세요!

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

요약
각 주차와 요일마다 약속을 지킬 수 있는지 판단한 뒤, 밥을 얻어먹을 수 있는 연속한 날의 최장 길이를 구한다.
난이도

보통10점 중 4점

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

문제

24학번 신입생 정민이는 밥을 사준다는 선배들의 약속을 모두 메모장에 기록해 둔다. 메모장의 각 줄에는 선배 이름 SS, 약속 주차 WW, 요일 DD, 밥 약속에 드는 비용 PP가 기록돼 있다. 선배 이름은 문자열, 나머지는 정수로 기록한다. 또, 한 선배는 두 번 이상 밥을 사주지 않으며 모든 선배의 이름은 다르다.

정민이는 컴퓨터학부답게 요일을 00과 66 사이의 정수로 기록한다. 예를 들어 월요일은 00이고 목요일은 33이다.

정민이의 착한 선배들은 밥을 사줄 수 있는 충분한 돈이 있다면 귀여운 후배와의 밥 약속을 무를 수 없다. 정민이의 기록과 선배들이 지닌 돈을 보고 정민이가 최대 며칠 연속으로 밥을 얻어먹을 수 있는지 구해보자!

입력

첫 번째 줄에는 기록의 수 NN이 주어진다. (0≤N≤1000 \leq N \leq 100)

두 번째 줄부터 NN개의 줄에 걸쳐 기록의 정보가 주어진다. 기록의 정보는 SS WW DD PP와 같은 형식으로 주어지며, 이는 SS선배가 WW주차 DD번째 요일에 PP원이 필요한 밥 약속을 잡았음을 뜻한다. 기록에 있는 선배의 이름은 모두 정확히 한 번씩만 주어진다. (1≤W≤10;0≤D≤6;0≤P≤100,000)(1 \leq W \leq 10; 0 \leq D \leq 6; 0 \leq P \leq 100\\,000)

그다음 줄부터 NN개의 줄에 걸쳐 앞서 주어진 선배 이름과 선배가 소지한 돈 MM이 공백을 사이에 두고 주어진다. 여기서 주어지는 선배 이름의 순서는 앞서 주어진 선배 이름의 순서와 다를 수 있다. (0≤M≤100,000)(0 \leq M \leq 100\\,000)

선배 이름은 1212글자 이내의 영어 대소문자로 이뤄진 문자열로 주어진다.

출력

정민이가 최대 며칠 연속으로 밥을 얻어먹을 수 있는지 출력한다.

힌트

국제 표준으로, 일주일의 시작은 월요일이다.

예제1

  1. 예제 1

    입력
    3
    OhIkjun 1 6 10000
    Hyukjun 1 5 5000
    Junseong 2 0 8000
    Hyukjun 4000
    OhIkjun 12000
    Junseong 20000
    
    예상 출력
    2