Document 3726083

advertisement
Московские учебно-тренировочные сборы по информатике
21 марта 2007 года. Практический тур С
Задача A
http://sbory.179.ru
Школа №179 МИОО
Быстро растет бамбук...
Имя входного файла:
Имя выходного файла:
Максимальное время работы на одном тесте:
Максимальный объем используемой памяти:
a.in
a.out
0,2 секунды
64 мегабайта
Скоро начнётся сезон роста бамбука. Скупщики бамбука принимают любое количество бамбука
каждый день ровно в полдень. Однако цена бамбука каждый день меняется. Нам удалось узнать, по какой
цене скупщики будут принимать бамбук. Кроме того, мы точно знаем, на сколько метров вырастает бамбук
за каждые сутки (эта величина тоже меняется).
В любой день можно либо срезать весь бамбук целиком и продать его, либо оставить бамбук расти
дальше. После срезания бамбук продолжает расти.
Требуется определить, какую максимальную прибыль от продажи бамбука можно получить. В
полдень нулевого дня (начало сезона роста бамбука) длина бамбука равна 0. Сезон роста бамбука длится
ровно N суток.
Формат входных данных
В первой строке входного файла находится натуральное число N, 1<=N<=100000. В каждой из
следующих N строк содержатся два целых положительных числа, разделенных пробелом: цена одного
метра бамбука в определенный день и на сколько метров вырос бамбук за последние сутки. В (i+1)-й строке
файла содержатся данные, относящиеся к полудню i–го дня.
Формат выходных данных
В единственной строке выходного файла следует выводить одно целое неотрицательное число –
наибольшая возможная выручка от продажи бамбука. Гарантируется, что результат не превосходит 263-1.
Примеры
a.in
8
2
4
3
5
2
5
4
a.out
139
7
1
3
5
4
2
7
1 1
4
3
2
5
4
39
3
1
3
1
Страница 1 из 4
Московские учебно-тренировочные сборы по информатике
21 марта 2007 года. Практический тур С
Задача B
http://sbory.179.ru
Школа №179 МИОО
Предложение
Имя входного файла:
Имя выходного файла:
Максимальное время работы на одном тесте:
Максимальный объем используемой памяти:
b.in
b.out
3 секунды
64 мегабайта
В этой задаче словом будем называть произвольную последовательность маленьких
латинских букв; предложением будем называть произвольную последовательность слов, причем соседние
слова разделены одним или несколькими пробелами.
Расстояние Хэмминга между двумя словами одинаковой длины – это количество позиций, в
которых они различны. Например, расстояние Хэмминга между словами tools и table равно 3 (совпадают
символы t в первой позиции и символы l в четвертой).
Расстояние Хэмминга между двумя словами произвольной длины вычисляется так: в конце более
короткого слова дописываем необходимое количество пробелов, чтобы длины слов выровнялись, а затем
вычисляем расстояние Хэмминга, как это описано выше. Например, расстояние Хэмминга между словами
statement и sentence равно 6.
Дано предложение. Требуется найти сумму расстояний Хэмминга между каждой парой слов.
Формат входных данных
В единственной строке входного файла находится предложение. Первый символ во входном файле
обязательно является буквой. Других символов, кроме маленьких латинских букв и пробелов, в строке нет.
Всего строка содержит не более 2000000 символов.
Формат выходных данных
В выходной файл следует одно целое неотрицательное число - сумму расстояний Хэмминга между
всеми парами слов.
Пример
b.in
abc
b.out
cdcba adc
the
hamming distance
two sequences is equal
8
between 232
to
Страница 2 из 4
Московские учебно-тренировочные сборы по информатике
21 марта 2007 года. Практический тур С
Задача C
http://sbory.179.ru
Школа №179 МИОО
Очень простая задача
Имя входного файла:
Имя выходного файла:
Максимальное время работы на одном тесте:
Максимальный объем используемой памяти:
c.in
c.out
1 секунда
64 мегабайта
Задана последовательность целых чисел. Требуется убрать в ней все повторы.
Формат входных данных
В первой строке содержится количество чисел в последовательности.
Каждая следующая строка входного файла содержит одно данное целое число, не превосходящее по
абсолютной величине 2000000000. Всего файл содержит не более 200000 чисел.
Формат выходных данных
В выходной файл следует выводить те же числа в и в том же порядке. Однако при этом, если число
уже встречалось в выходном файле, то выводить его не надо.
Примеры
c.in
8
5
3
5
1
0
-3
3
5
c.out
5
3
1
0
-3
Страница 3 из 4
Московские учебно-тренировочные сборы по информатике
21 марта 2007 года. Практический тур С
Задача D
http://sbory.179.ru
Школа №179 МИОО
Маленькая задача
Имя входного файла:
Имя выходного файла:
Максимальное время работы на одном тесте:
Максимальный объем используемой памяти:
d.in
d.out
0,5 секунды
64 мегабайта
Имеется набор из N различных прямоугольников.
Будем называть прямоугольник маленьким, если найдется другой прямоугольник из данного
набора, которым можно полностью накрыть этот прямоугольник. При этом прямоугольники можно
поворачивать, но соответствующие стороны прямоугольников должны быть параллельны. Так, например,
прямоугольник со сторонами 1 и 10 можно полностью накрыть прямоугольником со сторонами 10 и 3, но
нельзя накрыть прямоугольником со сторонами 9 и 9. Прямоугольники со сторонами 10 и 3, а также со
сторонами 9 и 9 накрыть нельзя, следовательно в наборе из этих трех прямоугольников только один
маленький.
Требуется определить количество маленьких прямоугольников в данном наборе.
Формат входных данных
В первой строке входного файла находится натуральное число N, 2<=N<=200000. В каждой из
следующих N строк содержатся два целых положительных числа, разделенных пробелом, - размеры одного
прямоугольника. Все размеры не превосходят 1000000. Среди данных прямоугольников нет одинаковых.
Формат выходных данных
В единственной строке выходного файла следует выводить одно целое неотрицательное число –
количество маленьких прямоугольников в данном наборе.
Пример
d.in
3
1 10
9 9
10 3
d.out
1
Страница 4 из 4
Download