Робомарафон
시간 제한1초메모리 제한512 MB
활성화할 출발 신호를 임의의 비어 있지 않은 집합으로 고를 때, 각 로봇이 얻을 수 있는 최선 또는 최악의 등수를 구합니다.
문제
В робомарафоне принимают участие роботов. Роботы должны преодолеть одинаковую дистанцию, передвигаясь по расположенным рядом друг с другом дорожкам шириной один метр каждая. Известно, что расположенный на -й дорожке робот преодолевает дистанцию за секунд.
В точке старта каждого робота установлено специальное сигнальное устройство, которое должно сработать в момент старта. Чтобы сделать соревнования менее предсказуемыми, судьи перед стартом могут отключить некоторые сигнальные устройства, остальные устройства останутся активными. Только активные устройства срабатывают в тот момент, когда главный судья начинает робомарафон. В начале робомарафона хотя бы одно сигнальное устройство должно являться активным.
Каждый робот начинает движение в тот момент, когда до него доходит стартовый сигнал от активного устройства. Сигнал распространяется со скоростью 1 метр в секунду. Если ближайшее к -му роботу активное устройство находится на -й дорожке, то расстояние между ними составляет метров. Этот робот начнёт движение через секунд после старта, преодолеет дистанцию за секунд, и финиширует через секунд после старта робомарафона.
Пусть --- количество роботов, которые финишировали строго раньше -го робота. Место -го робота по итогам робомарафона равно . Если несколько роботов финишируют одновременно, а перед ними финишировали роботов, то считается, что все они заняли -е место.
Рассмотрим пример. Пусть , роботы преодолевают дистанцию за , и миллисекунд, а активным являлось только сигнальное устройство у третьего робота. Тогда первый робот начнет движение через секунды после начала забега, . Второй робот начнет движение через секунду, . Третий робот начнет движение в момент старта, . По итогам забега первый и второй робот делят первое место, третий робот занимает третье место. Если же, например, сработают все три сигнальных устройства, роботы финишируеют через , , , секунд, соответственно. Первый робот займет первое место, второй робот займет второе место, а третий робот --- третье место.
Как видно из примера, место, которое займет робот, зависит от того, какие сигнальные устройства являются активными. Необходимо обрабатывать два типа запросов:
- для каждого робота определить минимальное место, которое он может занять;
- для каждого робота определить максимальное место, которое он может занять.
Требуется написать программу, которая по типу запроса и информации о времени прохождения дистанции каждым роботом определяет для каждого робота минимальное или максимальное место, которое он может занять в марафоне.
입력
В первой строке входных данных находятся два целых числа: --- количество роботов (), и --- тип запроса. Значение означает, что для каждого робота необходимо определить минимальное место, которое он может занять, значение означает, что для каждого робота необходимо определить максимальное место, которое он может занять.
Во второй строке находятся целых чисел --- время, за которое роботы преодолевают дистанцию ().
출력
Требуется вывести целых чисел, -е из которых, в зависимости от типа запроса, должно задавать минимальное или максимальное место, которое может занять -й робот.