만드는 중입니다

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

당직 일정 비교

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

요약
두 당직 일정이 주어질 때, 첫 번째 일정에서 두 번째 일정으로 바뀌면서 팀원별 당직 시간이 얼마나 늘거나 줄었는지 이름순으로 출력합니다.
난이도

쉬움10점 중 2점

유형
해시맵, 구현, 문자열, 정렬
정답자
아직 제출이 없습니다

문제

당신은 사용자가 프로그래밍 과제를 풀 수 있도록 제공하는 고가용성 서비스의 당직자 중 한 명이다. 팀에는 시각마다 누가 서비스를 담당하는지 적힌 당직 일정표가 있다.

동료가 새 일정표를 보내왔다. 모든 팀원의 당직 시간이 이전과 같은지 확인하고, 차이가 있으면 출력하려 한다.

당직 일정표는 sis_i eie_i tit_i 형식의 줄로 적힌다. 여기서 sis_i와 eie_i는 어떤 시작 시각부터 센 당직의 시작 오프셋과 끝 오프셋이고, tit_i는 그 구간을 맡는 팀원이다.

예를 들어 다음 일정표를 보자.

0 7 jan
7 14 tomaz
14 20 jure
20 24 jan
24 25 tomaz
25 26 jure

jan은 처음 7시간(0시부터 6시까지) 당직이고, 이어지는 7시간은 tomaz가 맡는다. 전체로 보면 jan은 11시간, tomaz는 8시간, jure는 7시간 당직이다.

입력

입력은 두 개의 일정표로 이루어지며, 두 일정표는 ------ 줄로 구분된다. 각 일정표에는 sis_i eie_i tit_i 형식의 줄이 한 줄 이상 있다. 정수 sis_i와 eie_i는 팀원 tit_i가 시각 sis_i부터 eie_i 직전까지 당직임을 뜻한다. 두 번째 일정표 뒤에는 마지막 줄로 ======가 나온다.

출력

두 일정표의 차이를 ti±dit_i \pm d_i 형식으로 출력한다. 여기서 did_i는 팀원 tit_i에 대해 두 번째 일정표의 당직 시간에서 첫 번째 일정표의 당직 시간을 뺀 값이다. 출력은 팀원 이름의 사전순으로 정렬하고, 차이가 없는 팀원은 생략한다. 출력되는 차이에는 항상 + 또는 - 부호를 붙인다. 차이가 전혀 없으면 No differences found.를 출력한다.

제한

각 일정표에 대해 다음이 성립한다.

  • s1=0s_1 = 0
  • si<eis_i < e_i
  • si+1=eis_{i+1} = e_i
  • ei≤1000e_i \leq 1000
  • 팀원 이름 tit_i는 영어 소문자로만 이루어진다.
  • 3≤∣ti∣≤203 \leq |t_i| \leq 20

예제3

  1. 예제 1

    입력
    0 7 jan
    7 14 tomaz
    14 20 jure
    20 24 jan
    24 25 tomaz
    25 26 jure
    ------
    0 9 tomaz
    9 20 jan
    20 26 jure
    ======
    
    예상 출력
    jure -1
    tomaz +1
    
  2. 예제 2

    입력
    0 7 nino
    7 14 bgs
    14 21 ines
    ------
    0 7 ines
    7 14 nino
    14 21 bgs
    ======
    
    예상 출력
    No differences found.
    
  3. 예제 3

    입력
    0 3 vid
    3 6 maks
    6 9 janez
    ------
    0 1 vid
    1 2 vid
    2 3 vid
    3 4 maks
    4 5 maks
    5 6 maks
    6 7 janez
    7 8 janez
    ======
    
    예상 출력
    janez -1