페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3085

랭킹올리기 1s 64MB

문제

아재 택쌤은 오락실에서 비행기 게임을 한다.

초고수 택쌤의 순위를 추적하는 프로그램을 작성하라. 

순위는 “밀집 랭킹” 방식으로, 이 때의 순위표는 다음과 같이 만들어진다.

  • 가장 높은 점수가 랭킹 1위이다.

  • 같은 점수를 가진 사람은 같은 랭킹이다.

  • 다음으로 높은 점수를 가진 사람은 위의 랭킹 + 1이다.

 

예를 들어 기록된 점수가 각각 100, 90, 90, 70점이면 해당하는 랭킹은 각각 1, 2, 2, 3이 된다 (올림픽처럼 1, 2, 2, 4가 아니다.)

 

택쌤의 점수 기록이 주어질 때, 택쌤의 순위를 각각 출력하라. 

택쌤은 한판 한판 할수록 실력이 늘기 때문에, 택쌤의 점수는 항상 높아진다

갤러그 이후 모든 오락기는 항상 1위부터 아래 순위로 보여주기 때문에, 오락기의 점수판은 내림차순 정렬되어 있다.

주의: 이 오락기는 특별해서 같은 이름으로 두 번 저장할 수 없다. 택쌤의 이전 기록은 택쌤이 신기록을 세우면 지워진다.


입력

첫 줄에 정수 n이 주어진다. n은 오락기에 저장되어 있는 점수 기록 수이다.

그 다음 한 줄에 n개의 정수가 내림차순 정렬되어 주어진다. 이는 오락기에 저장된 점수 기록들이다. 

그 다음 줄에 정수 m이 주어진다. m은 택쌤의 게임 횟수이다.

그 다음 한 줄에 m개의 정수가 주어진다. 이는 택쌤의 점수이며, 오름차순 정렬되어 입력된다. 

 

제약 조건

  • 1 <= n <= 200,000 1 <= m <= 200,000을 만족한다. 

  • 모든 점수는 0이상 109이하의 정수이다.

  


출력

m줄에 걸쳐서 각 게임이 끝난 후 택쌤의 순위를 출력하라.


부분문제

번호 점수 조건
#150점

1 <= n <= 200, 1 <= m <= 200이다.

#250점

주어진 제약조건 외에 아무 제약조건이 없다.


예제

7

100 100 50 40 40 20 10
4
5 25 50 120
6

4
2
1


출처

hackerrank, 2018camp contest1 problemB
로그인해야 코드를 작성할 수 있어요.