Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 473 474 475 476 477 478 479 >> Отображать по:
#112525
  
Темы: [Деревья]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Черный ящик организован наподобие примитивной базы данных. Он может хранить набор целых чисел и имеет выделенную переменную i . В начальный момент времени черный ящик пуст, а значение переменной i =0. Черный ящик обрабатывает последовательность поступающих команд (запросов). Существуют два типа запросов:

  • ADD: положить в черный ящик элемент;
  • GET: увеличить значение i на 1 и выдать i - ый минимальный из содержащихся в черном ящике элементов. Напомним, что i - ым минимальным называется число, стоящее на i - ом месте после сортировки элементов черного ящика в порядке неубывания.

Рассмотрим возможную последовательность из 11 запросов:

Запрос

 

i

Содержимое черного ящика после запроса

(элементы расположены в порядке неубывания)

Ответ

1

ADD (3)

0

3

 

2

GET

1

3

3

3

ADD (1)

1

1, 3

 

4

GET

2

1, 3

3

5

ADD (-4)

2

-4, 1, 3

 

6

ADD (2)

2

-4, 1, 2, 3

 

7

ADD (8)

2

-4, 1, 2, 3, 8

 

8

ADD (-1000)

2

-1000, -4, 1, 2, 3, 8

 

9

GET

3

-1000, -4, 1, 2, 3, 8

1

10

GET

4

-1000, -4, 1, 2, 3, 8

2

11

ADD (2)

4

-1000, -4, 1, 2, 2, 3, 8

 

Требуется разработать эффективный алгоритм, обрабатывающий заданную последовательность запросов. Максимальное допустимое количество запросов ADD и GET — по 30000 каждого типа. Последовательность запросов будем задавать двумя наборами чисел:

  1. Последовательностью включаемых в черный ящик элементов A (1), A (2), ... A ( M ) . Значения A — целые числа, не превосходящие по абсолютной величине 2 000 000 000, 1 ≤ M ≤ 30000 . Для примера 1 имеем A =(3, 1, -4, 2, 8, -1000, 2).
  2. Последовательностью u (1), u (2), ... u ( N ) , задающей количество содержащихся в черном ящике элементов в момент выполнения первой, второй, ..., N - ой команды GET. Для примера 1 имеем u =(1, 2, 6, 6).
Схема работы черного ящика предполагает, что последовательность натуральных чисел u (1), u (2), ... u ( N ) упорядочена по неубыванию, N M и для всех p (1 ≤ p N ) выполняется соотношение p u ( p ) ≤ M . Последнее следует из того, что для p - го элемента последовательности u мы выполняем запрос GET, выдающий p - ое минимальное число из набора A (1), A (2), ..., A ( u ( p )) .

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

Файл исходных данных содержит (в указанном порядке): M , N , A (1), A (2), ..., A ( M ), u (1), u (2), ..., u ( N ) . Все числа разделяются пробелами и (или) символами перевода строки.

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

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

Примеры
Входные данные
7 4
3 1 -4 2 8 -1000 2
1 2 6 6
Выходные данные
3
3
1
2
#112526
  
Темы: [Деревья]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
32 megabytes

Как известно, Нью-Йорк большой город. На главной улице находится N небоскребов в ряд, в i - м небоскребе есть A i свободных офисов. Недавно в городе образовались M компаний. Каждой из них конечно нужны офисы, но управляющие i - й компании хотят получить по офису в каждом небоскребе с L i по R i . Напишите программу, которая вычислит, какое максимальное количество компаний может получить офисы на главной улице Нью-Йорка в соответствии с их требованиями.

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

В первой строке входных данных записаны 2 числа N и M (1 ≤ N , M ≤ 100000) . В следующих N строках записано по одному числу A i (1 ≤ A i ≤ 100000) . В следующих М строках записаны пары чисел L i и R i (1 ≤ L i R i N ) .

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

Выведите одно число — максимальное количество компаний, которые могут получить офисы на главной улице Нью-Йорка.

Примеры
Входные данные
5 4
1
3
2
1
3
1 3
2 5
2 3
4 5
Выходные данные
3
#112527
  
Темы: [Очередь] [Дек]

Фирма NNN решила транслировать свой рекламный ролик в супермаркете XXX. Однако денег, запланированных на рекламную кампанию, хватило лишь на две трансляции ролика в течение одного рабочего дня. И при этом обязательно транслировать ровно два рекламных ролика в день.

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

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

Ролик длится ровно одну единицу времени. Для каждого момента времени известно количество покупателей, находящихся в магазине в этот момент. Между концом первой рекламы и началом следующей должна пройти как минимум К - 1 единица времени.

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

Первая строка содержит два числа N (моментов времени) и K (время совершения покупки одним покупателем). Гарантируется, что N > K. ( N, K ≤ 200 000 ). Во второй строке содержится N чисел a i — количество покупателей в момент времени i . ( 0 ≤ a i ≤ 2 000 000 000 ).

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

Выведите единственное число — количество просмотревших рекламу покупателей.

Примеры
Входные данные
5 2
3 5 1 4 2
Выходные данные
9
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
128 megabytes

Скоро начнётся сезон роста бамбука. Скупщики бамбука принимают любое количество бамбука каждый день ровно в полдень. Однако цена бамбука каждый день меняется. Нам удалось узнать, по какой цене скупщики будут принимать бамбук. Кроме того, мы точно знаем, на сколько метров вырастает бамбук за каждые сутки (эта величина тоже меняется). В любой день можно либо срезать весь бамбук целиком и продать его, либо оставить бамбук расти дальше. После срезания бамбук продолжает расти. Требуется определить, какую максимальную прибыль от продажи бамбука можно получить. В полдень нулевого дня (начало сезона роста бамбука) длина бамбука равна 0. Сезон роста бамбука длится ровно N суток.

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

В первой строке входного файла находится натуральное число N , 1 ≤ N ≤ 100000 . В каждой из следующих N строк содержатся два целых положительных числа, разделенных пробелом: цена одного метра бамбука в определенный день и на сколько метров вырос бамбук за последние сутки. В ( i + 1) - й строке файла содержатся данные, относящиеся к полудню i – го дня.

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

В единственной строке выходного файла следует выводить одно целое неотрицательное число – наибольшая возможная выручка от продажи бамбука. Гарантируется, что результат не превосходит 2 63 - 1 .

Примеры
Входные данные
8
2 7
4 1
3 3
5 5
2 4
5 2
4 7
1 1
Выходные данные
139
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Поблизости от столицы Флатландии одна компания решила построить коттеджный поселок. Строительная компания, которая занимается возведением коттеджей, решила раскрасить некоторые коттеджи в розовый цвет, а остальные - в голубой. Но они не могут решить какой коттедж раскрасить в какой цвет.

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

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

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

Первая строка входного файла input.txt содержит число n - количество коттеджей (1 ≤ n ≤ 300) . Следующие n строк содержат координаты коттеджей, каждая строка содержит два целых числа x i и y i ( - 10 4 x i , y i ≤ 10 4 ) .

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

Выведите в файл output.txt одно число - количество симпатичных раскрасок коттеджного поселка.

Примечание

Возможные раскраски приведены на следующем рисунке.

Примеры
Входные данные
4
0 0
1 0
1 1
0 1
Выходные данные
12

Страница: << 473 474 475 476 477 478 479 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест