Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 491 492 493 494 495 496 497 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Толик придумал новую технологию программирования. Он хочет уговорить друзей использовать ее. Однако все не так просто. \(i\)-й друг согласится использовать технологию Толика, если авторитет Толика будет не меньше \(a_i\) (авторитет выражается целым числом). Как только \(i\)-й друг начнет ее использовать, к авторитету Толика прибавится число \(b_i\) (попадаются люди, у которых \(b_i\) < 0). Помогите Толику наставить на путь истинный как можно больше своих друзей.

Входные данные

На первой строке содержатся два целых числа: Количество друзей у Толика \(n\) и первоначальный авторитет Толика \(a_0\) (\(-10^9 \le a_0 \le 10^9\)). Следующие \(n\) строк содержат пары целых чисел \(a_i\) и \(b_i\) (\(-10^9 \le a_i, b_i \le 10^9\)).

Выходные данные

На первой строке выведите число \(m\) \(-\) максимальное число друзей, которых может увлечь Толик. На второй строке выведите \(m\) чисел \(-\) номера друзей в том порядке, в котором их нужно агитировать.

Подзадача 1 (50 баллов) \(1 \le n \le 10^3\)

Подзадача 2 (50 баллов) \(1 \le n \le 10^5\)

Пример

ввод:

5 1
1 3
6 -5
6 -4
2 2
2 -1

Вывод:
4
1 4 3 5 


ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Мальчик Костя очень любит конфеты, но мама не разрешает ему брать их слишком много. Поэтому каждый раз, когда Костя хочет съесть конфету, мама предлагает ему сыграть в игру.

Изначально у Кости нет конфет, а у мамы их \(N\) (они пронумерованы от 1 до \(N\)). На каждой конфете мама написала два числа \(A_i\) и \(C_i\). Мама очень следит за уровеня вредности конфет, который получает ее сын. Изначально этот уровень равен 0. На каждом ходу игры Костя может взять одну конфету. Если Костя возьмет конфету с номером \(i\), то уровеня вредности увеличивается на \(A_i\). Если сразу после этого уровеня вредности становится большей \(C_i\), то брать эту конфету запрещается.

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

Помогите Косте взять как можно больше конфет (вне зависимости от финального уровеня вредности).

Входные данные

В первой сроке входных данных записано целое число \(N\) (\(1 \le N \le 1000\)) \(-\) количество видов конфет. Во второй строке записаны \(N\) целых чисел \(A_i\) (\(1 \le A_i \le 10^6\)). В третей строке записаны \(N\) целых чисел \(C_i\) (\(1 \le C_i \le 10^9\)).

Выходные данные

В единственной строке выведите целое число, равное максимальному количеству конфет, которые может взять Костя.

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Теплым весенним днем группа из \(N\) школьников-программистов гуляла в окрестностях города Кисловодска. К несчастью, они набрели на большую и довольно глубокую яму. Как это случилось — непонятно, но вся компания оказалась в этой яме.

Глубина ямы равна \(H\). Каждый школьник знает свой рост по плечи \(h_i\) и длину своих рук \(l_i\). Таким образом, если он, стоя на дне ямы, поднимет руки, то его ладони окажутся на высоте \(h_i + l_i\) от уровня дна ямы. Школьники могут, вставая друг другу на плечи, образовывать вертикальную колонну. При этом любой школьник может встать на плечи любого другого школьника. Если под школьником \(i\) стоят школьники \(j_1, j_2, \ldots, j_k\), то он может дотянуться до уровня \(h_{j1} + h_{j2} + \ldots + h_{jk} + h_i + l_i\).

Если школьник может дотянуться до края ямы (то есть \(h_{j1} + h_{j2} + \ldots + h_{jk} + h_i + l_i \geq H\)), то он может выбраться из нее. Выбравшиеся из ямы школьники не могут помочь оставшимся.

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

Входные данные

В первой строке входного файла записано натуральное число \(N\) — количество школьников, попавших в яму.

Далее в \(N\) строках указаны по два целых числа: рост \(i\)-го школьника по плечи \(h_i\) и длина его рук \(l_i\).

В последней строке указано целое число — глубина ямы \(H\).

Выходные данные

В первой строке выведите \(K\) — максимальное количество школьников, которые смогут выбраться из ямы. Если \(K > 0\), то во второй строке выведите их номера в том порядке, в котором они вылезают из ямы. Школьники нумеруются с единицы в том порядке, в котором они заданы во входном файле. Если существует несколько решений, выведите любое.

Подзадача 1 (30 баллов) \(n \le 2\,000\) и \(1 \le l_i, h_i, H \le 1\,000\)

Подзадача 2 (40 баллов) \(n \le 2\,000\) и \(1 \le l_i, h_i, H \le 10^5\)

Подзадача 3 (30 баллов) \(n \le 100\,000\) и \(1 \le l_i, h_i, H \le 10^9\)

Примеры
Входные данные
2
10 4
5 2
20
Выходные данные
0
Входные данные
6
6 7
3 1
8 5
8 5
4 2
10 5
30
Выходные данные
4
2 5 1 3
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

У Васи в комнате очень много коробок, которые валяются в разных местах. Васина мама хочет, чтобы он прибрался. Свободного места в комнате мало и поэтому Вася решил собрать все коробки и составить их одну на другую.

К сожалению, это может быть невозможно. Например, если на картонную коробку с елочными украшениями положить что-то железное и тяжелое, то вероятно следующий Новый год придется встречать с новыми игрушками.

Вася взвесил каждую коробку и оценил максимальный вес который она может выдержать. Помогите ему определить какое наибольшее количество коробок \(m\) он сможет составить одну на другую так, чтобы для каждой коробки было верно, что суммарный вес коробок сверху не превышает максимальный вес, который она может выдержать.

Входные данные

Первая строка входного файла содержит целое число \(n\) (\(1 \le n \le 10^5\)) - количество коробок в комнате. Каждая следующая из \(n\) строк содержит два целых числа \(w_i\) и \(c_i\) (\(1 \le w_i \le 10^5, 1 \le c_i \le 10^9\)), где \(w_i\) \(-\) это вес коробки с номером \(i\), а \(c_i\) \(-\) это вес который она может выдержать.

Выходные данные

В выходной файл выведите одно число \(-\) ответ на задачу.

Подзадача 1

1 ≤ n ≤ 1 250. Решение оценивается в 50 баллов.

Подзадача 2

Дополнительные ограничения отсутствуют. Решение оценивается в 50 баллов.

Примеры
Входные данные
3
10 11
20 100
30 10
Выходные данные
3
Входные данные
3
11 11
20 100
30 10
Выходные данные
2
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Петрик и Василько — настоящие друзья, поэтому они постоянно задают друг другу всевозможные интересные задачи. Однако Василько всегда с легкостью решает задачи своего друга, поэтому Петрик решил придумать по-настоящему сложную задачу. И вот что у него получилось. Будем называть число b подчислом числа a , если из числа a можно вычеркнуть некоторые цифры так, что цифры, которые остались, образуют число b . Задано n -цифровое число x . Обозначим как x k наибольшее k -цифровое подчисло числа x . Необходимо ответить на m запросов. Каждый запрос состоит из двух цифр - k и l . Ответом на запрос является l -я цифра числа x k . На этот раз задача действительно заставила Василько задуматься. А сможете ли вы решить ее быстрее его?

Входные данные

В первой строке входного файла содержится целое число x длины n ( 1 ≤ n ≤ 100 000 ). Во второй строке содержится число m ( 1 ≤ m ≤ 50 000 ). В следующих m строках содержится по два числа k i , l i ( 1 ≤ k i n , 1 ≤ l i k i ) — параметры i -го запроса.

Выходные данные

Выходной файл должен содержать одну строку длины m , i -й символ которого является ответом на i -й запрос.

Примечание

  1. n = 20, m = 10 000 .( 15 баллов)
  2. n · m ≤ 500 000 .( 25 баллов)
  3. n ≤ 100 000, m ≤ 50 000 .( 60 баллов)
Примеры
Входные данные
31415926
7
2 2
3 1
1 1
4 3
5 2
8 2
7 3
Выходные данные
6992511

Страница: << 491 492 493 494 495 496 497 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест