만드는 중입니다

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

알토 노래

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

요약
멜로디와 가창 가능 범위가 주어질 때, 범위에 들어가면서 샤프 음이 가장 적은 조옮김의 개수를 구한다.
난이도

보통10점 중 4점

유형
구현, 수학, 배열, 완전 탐색
정답자
아직 제출이 없습니다

문제

Anton은 KTH 합창단 Kongliga Teknologkören에서 유명한 합창 가수다. 수년간의 치밀한 정치적 활동 끝에 그는 합창단의 회장이 되었다. 회장으로서 그는 합창단이 무엇을 하는지, 어떤 곡을 연습할지까지 절대적인 권한을 가진다.

Anton은 마음에 쏙 드는 곡 하나를 골라 합창단이 그 곡을 부르게 하려 한다. 다만 작은 문제가 하나 있다. 그 곡은 그의 음역에 전혀 맞지 않는다. Anton은 알토 음역을 가지며, 곡에서 가장 중요한 부분이 자신의 목소리에 완벽하게 맞기를 원한다.

이 곡은 1212개의 표준 음, 즉 C, C#, D, D#, E, F, F#, G, G#, A, A#, B를 오름차순으로 나열하고 각 음 뒤에 그 음이 나타나는 옥타브를 정수로 붙여 표기한다. 가장 낮은 옥타브는 11이다. 옥타브 ii의 B 음 바로 뒤에는 옥타브 i+1i + 1의 C 음이 온다.

이제 Anton은 곡의 모든 음이 자신이 부를 수 있는 가장 낮은 음과 가장 높은 음으로 주어지는 음역 안에 들어오도록 곡을 조옮김하려 한다. 조옮김은 모든 음을 일정한 수만큼 올리거나 내리는 것이다. 예를 들어 C#4(네 번째 옥타브의 C#)를 55음 내리면 G#3이 된다. 게다가 Anton은 악보 읽기에 능숙하지 않다. 가능한 모든 조옮김 중에서 그는 임시표(# 기호가 붙은 음)의 개수를 최소로 만드는 조옮김에만 관심이 있다1.

곡과 Anton의 음역이 주어질 때, 그러한 조옮김은 몇 개인가?

1음악을 아는 독자를 위해 덧붙이면, Anton은 곡의 조표를 C 장조 외의 것으로 적는 것을 더 혼란스러워한다. 곡 전체에서 어떤 음을 올리거나 내려야 하는지 기억해야 하기 때문이다.

입력

첫째 줄에는 곡에 있는 음의 개수 nn이 주어진다(1≤n≤10001 \le n \le 1000). 이어서 Anton이 부를 수 있는 가장 낮은 음과 가장 높은 음이 순서대로 주어진다.

셋째 줄이자 마지막 줄에는 곡을 이루는 음들이 주어진다. 같은 음이 곡에 여러 번 나타날 수 있다. Anton이 이 곡을 조옮김한 것 중 적어도 하나는 부를 수 있음이 보장된다.

각 음은 1212개의 음 C, C#, D, D#, E, F, F#, G, G#, A, A#, B 중 하나 뒤에 옥타브를 공백 없이 바로 붙여 쓴다. 옥타브는 11 이상 10910^9 이하만 사용된다2.

2아마도 수 세기에 걸친 발성 연습 끝에.

출력

한 줄에 두 정수를 출력한다. 모든 조옮김 중 임시표(#이 붙은 음)의 최소 개수와, 곡을 Anton의 음역 안에 두면서 임시표 개수를 최소로 만드는 조옮김의 개수다. 곡이 이미 Anton의 음역 안에 있다면 00음 조옮김도 세어야 한다(임시표를 최소로 만드는 경우).

예제3

  1. 예제 1

    입력
    14
    F3 F5
    C4 C4 G4 G4 A4 A4 G4 F4 F4 E4 E4 D4 D4 C4
    
    예상 출력
    0 3
    
  2. 예제 2

    입력
    1
    C#1 A#1
    C1000000000
    
    예상 출력
    0 5
    
  3. 예제 3

    입력
    3
    F3 F5
    F3 F#3 F5
    
    예상 출력
    1 1