blobnom.xyz

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

요약
각 이용자마다 난이도가 실력 이하인 문제 수를 세고, 그 수로 만들 수 있는 가장 큰 게임판 크기 k를 구해 출력한다.
난이도

보통10점 중 5점

유형
정렬, 이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

blobnom.xyz는 독창적이고 재미있는 방식으로 문제 해결 실력을 겨룰 수 있는 서비스이다. 게임은 육각형 모양의 판 위에서 이루어지며, 참가자들은 마치 땅따먹기처럼 더 많은 영역을 차지하기 위해 문제를 해결해야 한다.

어느덧 문제 해결 분야를 대표하는 서비스로 성장한 blobnom.xyz는 NN개의 문제와 MM명의 이용자를 확보하였다. 각 문제는 11번부터 NN번, 각 이용자는 11번부터 MM번까지의 번호로 구분된다. ii번 문제의 난이도는 정수 A_iA\_i로 표현된다. jj번 이용자의 실력은 정수 B_jB\_j로 표현되며, 이는 해당 이용자가 난이도 B_jB\_j 이하의 문제를 모두 해결할 수 있음을 의미한다.

9191개의 문제가 사용된 크기가 66인 게임판의 모습

각 이용자는 자신이 해결할 수 있는 문제로만 이루어진 가장 큰 게임판을 만들려 한다. 크기가 kk인 게임판에 사용되는 문제의 수는 3k(k−1)+13k(k-1)+1개이다. 만약 사용자가 NN개의 문제 중 어떤 것도 해결하지 못할 경우 만들 수 있는 게임판의 크기는 00이다.

각 이용자의 실력이 주어질 때, 이용자가 해결할 수 있는 문제로만 이루어진 가장 큰 게임판의 크기를 차례대로 출력하시오.

입력

첫 번째 줄에 문제의 수 NN과 이용자의 수 MM이 공백으로 구분되어 주어진다. (1≤N,M≤300,000)(1 \le N, M \le 300\\,000)

두 번째 줄에 각 문제의 난이도를 나타내는 NN개의 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다. (1≤A_i≤1,000,000)(1 \le A\_i \le 1\\,000\\,000)

세 번째 줄에 각 이용자의 실력을 나타내는 MM개의 정수 B_1,B_2,⋯ ,B_MB\_1, B\_2, \cdots, B\_M이 공백으로 구분되어 주어진다. (1≤B_i≤1,000,000)(1 \le B\_i \le 1\\,000\\,000)

출력

하나의 줄에 MM개의 정수 C_1,C_2,⋯ ,C_MC\_1, C\_2, \cdots, C\_M을 공백으로 구분해 출력한다.

C_iC\_i는 ii번 이용자가 해결할 수 있는 문제로만 이루어진 가장 큰 게임판의 크기를 의미한다. 만약 ii번 이용자가 NN개의 문제 중 어떤 것도 해결하지 못할 경우 C_i=0C\_i = 0이다.

예제1

  1. 예제 1

    입력
    7 4
    10 3 2 9 4 5 6
    1 5 12 9
    
    예상 출력
    0 1 2 1