시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB864318.750%

문제

В робомарафоне принимают участие $n$ роботов. Роботы должны преодолеть одинаковую дистанцию, передвигаясь по расположенным рядом друг с другом дорожкам шириной один метр каждая. Известно, что расположенный на $i$-й дорожке робот преодолевает дистанцию за $a_i$ секунд. 

В точке старта каждого робота установлено специальное сигнальное устройство, которое должно сработать в момент старта. Чтобы сделать соревнования менее предсказуемыми, судьи перед стартом могут отключить некоторые сигнальные устройства, остальные устройства останутся активными. Только активные устройства срабатывают в тот момент, когда главный судья начинает робомарафон. В начале робомарафона хотя бы одно сигнальное устройство должно являться активным.

Каждый робот начинает движение в тот момент, когда до него доходит стартовый сигнал от активного устройства. Сигнал распространяется со скоростью 1 метр в секунду. Если ближайшее к $i$-му роботу активное устройство находится на $j$-й дорожке, то расстояние между ними составляет $x_i=|i-j|$ метров. Этот робот начнёт движение через $x_i$ секунд после старта, преодолеет дистанцию за $a_i$ секунд, и финиширует через $f_i = a_i + x_i$ секунд после старта робомарафона.

Пусть $k_i$ --- количество роботов, которые финишировали строго раньше $i$-го робота. Место $i$-го робота по итогам робомарафона равно $k_i + 1$. Если несколько роботов финишируют одновременно, а перед ними финишировали $k$ роботов, то считается, что все они заняли $(k+1)$-е место.

Рассмотрим пример. Пусть $n = 3$, роботы преодолевают дистанцию за $a_1 =2$, $a_2 = 3$ и $a_3 = 5$ миллисекунд, а активным являлось только сигнальное устройство у третьего робота. Тогда первый робот начнет движение через $2$ секунды после начала забега, $f_1 = 4$. Второй робот начнет движение через $1$ секунду, $f_2 =4$. Третий робот начнет движение в момент старта, $f_3 = 5$. По итогам забега первый и второй робот делят первое место, третий робот занимает третье место. Если же, например, сработают все три сигнальных устройства, роботы финишируеют через $f_1 = 2$, $f_2 = 3$, $f_3 = 5$, секунд, соответственно. Первый робот займет первое место, второй робот займет второе место, а третий робот --- третье место.

Как видно из примера, место, которое займет робот, зависит от того, какие сигнальные устройства являются активными. Необходимо обрабатывать два типа запросов:

  1. для каждого робота определить минимальное место, которое он может занять;
  2. для каждого робота определить максимальное место, которое он может занять.

Требуется написать программу, которая по типу запроса и информации о времени прохождения дистанции каждым роботом определяет для каждого робота минимальное или максимальное место, которое он может занять в марафоне.

입력

В первой строке входных данных находятся два целых числа: $n$ --- количество роботов ($1 \le n \le 200\,000$), и $p$ --- тип запроса. Значение $p = 1$ означает, что для каждого робота необходимо определить минимальное место, которое он может занять, значение $p = 2$ означает, что для каждого робота необходимо определить максимальное место, которое он может занять.

Во второй строке находятся $n$ целых чисел $a_1, a_2, \ldots, a_n$ --- время, за которое роботы преодолевают дистанцию ($0 < a_i \le 10^9$).

출력

Требуется вывести $n$ целых чисел, $i$-е из которых, в зависимости от типа запроса, должно задавать минимальное или максимальное место, которое может занять $i$-й робот.

서브태스크

Группа тестов для подзадачи 3 включает 30 тестов. Каждый из этих тестов оценивается независимо в 1 балл.

Группа тестов для подзадачи 4 включает 50 тестов. Каждый из этих тестов оценивается независимо в 1 балл.

번호배점제한
110

$n \le 20$, $p = 1$

210

$n \le 20$, $p = 2$

330

$n \le 400\,000$, $p = 1$

450

$n \le 400\,000$, $p = 2$

Значения $n$ для всех тестов в подзадаче 3 приведены в следующей таблице.

Тест $n$ Тест $n$ Тест $n$ Тест $n$ Тест $n$
1 $n = 100$ 7 $n = 15000$ 13 $n = 70000$ 19 $n = 130000$ 25 $n = 200000$
2 $n = 500$ 8 $n = 20000$ 14 $n = 80000$ 20 $n = 140000$ 26 $n = 240000$
3 $n = 1000$ 9 $n = 30000$ 15 $n = 90000$ 21 $n = 150000$ 27 $n = 280000$
4 $n = 2500$ 10 $n = 40000$ 16 $n = 99999$ 22 $n = 160000$ 28 $n = 320000$
5 $n = 4999$ 11 $n = 50000$ 17 $n = 110000$ 23 $n = 170000$ 29 $n = 360000$
6 $n = 10000$ 12 $n = 60000$ 18 $n = 120000$ 24 $n = 180000$ 30 $n = 400000$

Значения $n$ для всех тестов в подзадаче 4 приведены в следующей таблице.

Тест $n$ Тест $n$ Тест $n$ Тест $n$ Тест $n$
1 $n = 100$ 11 $n = 2500$ 21 $n = 30000$ 31 $n = 109999$ 41 $n = 220000$
2 $n = 200$ 12 $n = 3000$ 22 $n = 35000$ 32 $n = 120000$ 42 $n = 240000$
3 $n = 300$ 13 $n = 4000$ 23 $n = 40000$ 33 $n = 130000$ 43 $n = 260000$
4 $n = 400$ 14 $n = 4999$ 24 $n = 45000$ 34 $n = 140000$ 44 $n = 280000$
5 $n = 500$ 15 $n = 7500$ 25 $n = 50000$ 35 $n = 150000$ 45 $n = 300000$
6 $n = 750$ 16 $n = 10000$ 26 $n = 60000$ 36 $n = 160000$ 46 $n = 320000$
7 $n = 1000$ 17 $n = 12500$ 27 $n = 70000$ 37 $n = 170000$ 47 $n = 340000$
8 $n = 1250$ 18 $n = 15000$ 28 $n = 80000$ 38 $n = 180000$ 48 $n = 360000$
9 $n = 1500$ 19 $n = 20000$ 29 $n = 90000$ 39 $n = 190000$ 49 $n = 380000$
10 $n = 1999$ 20 $n = 25000$ 30 $n = 99999$ 40 $n = 200000$ 50 $n = 400000$

예제 입력 1

5 1
8 5 5 7 7

예제 출력 1

3
1
1
2
1

예제 입력 2

5 2
8 5 5 7 7

예제 출력 2

5
3
2
4
5

채점 및 기타 정보

  • 예제는 채점하지 않는다.