만드는 중입니다

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

고장난 피아노

면접 대비

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

요약
고장난 건반 목록과 MIDI 곡이 주어질 때, 연주할 수 없는 음의 개수와 곡 전체를 연주할 수 있게 하는 최소 이조 값을 구합니다.
난이도

쉬움10점 중 3점

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

문제

MIDI(Musical Instrument Digital Interface)는 악곡을 기술하는 기술 표준이다. 각 음은 0…1 0230 \ldots 1\,023 범위의 정수로 표현된다. 키가 1 0241\,024개인 피아노로 MIDI 형식의 곡을 연주하려 한다. 가장 왼쪽 키는 MIDI 코드 00에 대응하고, 왼쪽에서 두 번째 키는 코드 11에 대응하며, 이후도 같은 방식이다.

안타깝게도 이 피아노는 오래되어 일부 키가 고장 났다. 어떤 키가 작동하고 어떤 키가 작동하지 않는지는 알고 있다. 곡을 연주하는 동안 작동하는 키가 고장 나지 않으며, 고장 난 키가 다시 작동하지도 않는다.

다음 값을 구하는 프로그램을 작성하라.

  • 피아노로 연주할 수 없는 음의 개수
  • 곡을 피아노로 연주하기 위해 필요한 최소 전조(transposition) 값

전조는 곡의 모든 음을 같은 값만큼 위나 아래로 옮기는 것이다. 반음 위로 전조하면 각 음 대신 오른쪽 이웃 키가 연주된다. 반음 아래로 전조하면 왼쪽 이웃 키가 연주된다. 두 반음 위로 전조하면 두 칸 오른쪽 키가 연주되는 식이다. 반음 위로 전조할 때 MIDI 코드 1 0231\,023의 음은 대응하는 키가 없어서 연주할 수 없다.

입력

첫 줄에 고장 난 키의 개수 NN이 주어진다 (1≤N≤1 0241 \le N \le 1\,024). 둘째 줄에는 고장 난 키의 MIDI 코드 AiA_i (0≤Ai≤1 0230 \le A_i \le 1\,023) NN개가 주어지며, 모두 서로 다르다. 셋째 줄에는 곡의 음 개수 MM (1≤M≤1061 \le M \le 10^6)이 주어진다. 넷째 줄에는 음의 MIDI 코드 BiB_i (0≤Bi≤1 0230 \le B_i \le 1\,023) MM개가 주어진다.

출력

두 줄을 출력한다. 첫째 줄에는 피아노로 연주할 수 없는 음의 개수를 출력한다. 둘째 줄에는 곡을 연주할 수 있게 하는 전조의 반음 수를 출력한다. 가능한 전조가 여러 개라면 절댓값이 가장 작은 것을 출력한다. 어떤 전조로도 연주할 수 없다면 둘째 줄에 X를 출력한다. 풀이가 전조 값을 찾지 못하면 둘째 줄에 E를 출력한다.

예제2

  1. 예제 1

    입력
    2
    7 8
    6
    4 5 6 7 8 7
    
    예상 출력
    3
    -2
    
  2. 예제 2

    입력
    2
    0 1023
    4
    0 1023 1023 1023
    
    예상 출력
    4
    X