Задача A. Максимальный поток (несколько истоков и стоков)

Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

Требуется найти максимальный поток в сети с несколькими истоками и стоками.

Формат входного файла

В первой строке входного файла содержится число N  — количество вершин в сети. Далее следует N чисел ai ∈ 0, 1, 2. Если ai = 0, то i-ая вершина  — это обычный узел; если ai = 1 то i-ая вершина  — это исток; если ai = 2 то i-ая вершина  — это сток. Гарантируется, что в сети есть хотя бы один исток и хотя бы один сток.

Далее следует матрица целых чисел U размером N × N. 0 ≤ Uij ≤ 106  — вместимость ребра из i-ой вершины в j-ую. На диагонали матрицы находятся нули.

Формат выходного файла

В выходной файл выведите единственное число  — объем максимального потока.

Ограничения

2 ≤ N ≤ 50

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
2
1 2
0 100
1000 0
100
2
4
1 0 0 2
0 2 1 0
0 0 1 2
0 1 0 1
0 0 0 0
3
3
10
0 0 1 0 1 2 2 0 2 0 
0 100 0 0 0 1 0 0 0 0
0 0 0 0 0 120 0 0 0 0
100 0 0 0 0 0 0 0 0 0
10 10 0 0 0 0 0 20 0 20
0 0 0 50 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 15 0 15 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 10 0 0
141

Задача B. Кластер

Автор:А. Жуплев, А. Кленин
Входной файл: input.txt   Ограничение времени:1 сек
Выходной файл: output.txt   Ограничение памяти:8 Мб

Условие

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

Пусть кластер состоит из N компьютеров и сервера. Компьютеры имеют разную производительность, так что i-й компьютер заканчивает расчёт одной подзадачи за ti секунд. По окончании расчёта компьютер отправляет результаты на сервер, получает в ответ следующую подзадачу, тратит на неё ещё ti секунд, и т.д. Таким образом, в одну секунду на сервер могут прийти ответы от нескольких компьютеров.

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

Формат входного файла

Во входном файле содержится число N, за которым следуют N чисел t1… tN.

Формат выходного файла

В выходном файле должно содержаться количество секунд до максимальной загрузки. Так как это число может быть очень велико, оно должно быть выведено в виде разложения на простые множители. При этом множители должны быть отсортированы по возрастанию и разделяться символом '*' (ASCII 42). Если степень вхождения простого числа больше единицы, следует указать её вслед за числом, разделив их символом '^' (ASCII 94).

Например: число 25 будет иметь вид: 5^2, а число 3000 — 2^3*3*5^3.

Ограничения

1 ≤ N ≤ 106, 1 ≤ ti ≤ 106

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
2
2 3
2*3
2
3 18 18 18
2*3^2

Задача C. Плотность населения

Автор:Южно-Уральский открытый командный чемпионат
Входной файл: input.txt   Ограничение времени:5 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

После проведения переписи населения Флатландии все данные были нанесены на карту. Прямоугольная карта Флатландии была разделена на клетки единичного размера. Число жителей в каждой клетке изменяется от 0 до 9.

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

Формат входного файла

В первой строке входного файла содержится три целых числа, разделенных пробелами — размеры Флатландии N, M и заданная плотность населения K. Далее следует N строк, каждая из которых содержит M цифр от 0 до 9 — карта распределения населения Флатландии.

Формат выходного файла

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

Ограничения

1 ≤ N ≤ 100, 1 ≤ M ≤ 100, 1 ≤ K ≤ 9

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3 3 1
020
102
020
1 2 3 2

Задача D. Вектор

Автор:И. Бураго
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

Дан целочисленный вектор P1, P2, …, PN. Над любым вектором, состоящим из двух и более элементов, определим операцию сжатия, состоящую в замене произвольной пары соседних элементов на их сумму. Например, вектор 1 2 3 в результате сжатия может превратиться в вектор 3 3 либо 1 5.

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

Формат входного файла

Входной файл содержит тройку чисел N A B, за которой следует N чисел P1, P2, …, PN.

Формат выходного файла

Выходной файл должен содержать длину результирующего вектора, за которой следуют его элементы. Если решений не существует, вывести единственное число 0. Если решений несколько, вывести любое из них.

Ограничения

Все числа во входном файле целые.

1 ≤ N ≤ 1000, 0 ≤ A, B, pi ≤ 106.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
7 3 6
3 1 1 1 2 2 2
3
5 3 4
2
7 3 3
3 1 1 1 2 2 2
0
3
6 20 50
29 5 19 37 43 5
4
29 24 37 48

Задача E. Ближайшие точки

Автор:Методическая комиссия по информатике
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

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

Готовясь к контрольной работе, Антон столкнулся со следующей задачей: "На числовой прямой задано n точек. Необходимо найти среди них две ближайшие". Расстояние между двумя точками числовой прямой x и y равно |x − y|.

Требуется написать программу, которая поможет Антону решить поставленную задачу.

Формат входного файла

Первая строка входного файла содержит количество точек n.

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

Формат выходного файла

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

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

Если ответов несколько, выведите любой из них.

Ограничения

2 ≤ n ≤ 105

xi - целые числа, не превосходящие 109 по абсолютной величине

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
5
10 3 6 2 5
1
2 4

Задача F. Чебурашка и бильярд

Автор:А. Жуплев
Входной файл: input.txt   Ограничение времени:1 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

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

Затем Чебурашка установил бильярдный шарик внутрь рамки, в точку с координатами (x; y) и ударил по нему, в результате чего шарик начал двигаться с вектором скорости (Vx; Vy). Шарик движется без трения, т.е. скорость шарика не уменьшается со временем. При ударе об один бортик шарик отскакивает без потери скорости под углом, равным углу падения. Если шарик ударяется сразу о два бортика (т.е. попадает точно в угол), то вектор его скорости меняет направление на противоположное. Чебурашке интересно, какие координаты будет иметь шарик через время t, и он просит вас написать программу, отвечающую на этот вопрос.

Диаметр шарика пренебрежимо мал по сравнению с a.

Рекомендуется рассмотреть частичные решения

Формат входного файла

Во входном файле содержится целое число a, за которым следуют вещественные числа x y Vx Vy t, заданные с точностью 105

Формат выходного файла

В выходном файле должно содержаться два числа — координаты (Xt; Yt) шарика через время t, выведенные с точностью не менее 103

Ограничения

1 ≤ a ≤ 103, 0 ≤ |Vx|, |Vy| ≤ 103, 0 ≤ t ≤ 106

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
4 0 0 0.01 0.01 300
1.000 1.000
2
5 2 1 -1 3 2
0.000 3.000
3
10 1 1 -200 -1000 6891.99971
1.058 1.290

Задача G. Кубики

Автор:Жюри XVIII городской олимпиады школьников Санкт-Петербурга по информатике
Входной файл: input.txt   Ограничение времени:1 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

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

Теперь Петя видит перед собой N цветных кубиков, но не знает, какие из этих кубиков настоящие, а какие - всего лишь отражение в зеркале.

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



Формат входного файла

Первая строка входного файла содержит число N и количество различных цветов, в которые могут быть раскрашены кубики - M. Следующая строка содержит N целых чисел от 1 до M - цвета кубиков.

Формат выходного файла

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

Ограничения

1 ≤ N,M ≤ 100000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
6 2
1 1 2 2 1 1
3 5 6

Задача H. Миллион Z

Входной файл: input.txt   Ограничение времени:5 сек
Выходной файл: output.txt   Ограничение памяти:8 Мб

Условие

Дана строка, состоящая из одного миллиона букв "Z". Определим операцию замены, которая характеризуется тремя параметрами (α, i, j) и состоит в замене на букву α букв строки начиная с позиции i до позиции j. Требуется определить, сколько различных букв будет в строке после выполнения заданной последовательности операций замены.

Формат входного файла

В первой строке входного файла содержится число замен N. В следующих N строках содержатся тройки α i j, где α — заглавная латинская буква, i и j — целые числа.

Формат выходного файла

Выходной файл должен содержать единственное целое число — количество различных букв в результирующей строке.

Ограничения

0 ≤ N ≤ 1000, 1 ≤ i ≤ j ≤ 106

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3
A 1 50
X 90 1000
D 30 1000000
2

Задача I. Сухой фотограф

Автор:A. Klenin
Входной файл: input.txt   Ограничение времени:5 сек
Выходной файл: output.txt   Ограничение памяти:200 Мб

Условие

В некотором городе имеется достопримечательность - прямоугольная площадь размером X на Y метров, на которой работают N фонтанов. Турист желает посетить эту площадь и сделать несколько фотографий. Однако если при фотографировании находиться от какого-либо из фонтанов на расстоянии меньше R метров, фотоаппарат может быть поврежден брызгами воды. Помогите фотографу найти безопасную точку съёмки. Требуется по координатам фонтанов определить точку на площади, удалённую от каждого из них не менее чем на R метров, или определить, что такой точки не существует. Если таких точек более одной, вывести любую из них. Обратите внимание, что стоять в точности на границе окружности или прямоугольника разрешено.

Формат входного файла

В первой строке входного файла содержатся числа X Y N R, в каждой из следующих N строк - координаты xi yi i-го фонтана. Числа X Y R во входном файле — вещественные.

Формат выходного файла

В выходном файле должны, содержаться два вещественных числа - координаты сухой точки. Если такой точки не существует, следует вывести значения -1 -1. Проверка результатов будет осуществляться путём подстановки координат точки в неравенства, задающие внутренность каждого круга. Эти вычисления будут производиться с использованием вещественных чисел двойной точности (double).

Ограничения

1 <= N <= 100, 1 <= X, Y, R <= 106.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
100 100 4 50
0 0
100 0
0 100
100 100
50 50

Задача Z. Змейка

Автор:О. Бабушкин
Входной файл: input.txt   Ограничение времени:3 сек
Выходной файл: output.txt   Ограничение памяти:256 Мб

Условие

Подружки Катя и Надя уже давно играют в игру «Змейка».

Поле для игры представляет собой клетчатый квадрат со стороной n. В каждой клетке квадрата может быть либо зеленая лужайка, либо пень. Изначально в их распоряжении находится змейка длиной 1. За один шаг змейка может перемещаться в одном из 4х направлений: вверх, вниз, вправо и влево. Однако змейка не может ползать по пенькам.

Так же на поле имеется одно яблоко. В момент, когда змейка наползает на яблоко, яблоко пропадает и появляется в другом месте, а длина змейки увеличивается на единицу. (В этот момент туловище змейки продляется на ту клетку, из которой только что выполз хвост). Обратите внимание, что змейка не может переползать через саму себя или ползти в клеточку, в которой находится ее хвост (хвост уже старенький и выползти не успевает).

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

Формат входного файла

В первой строке входного файла находится число n. В последующих n строках содержится по n символов задающих лабиринт. Лужайке соответствует символ ‘.’, пню – ‘#’, i-ому яблоку цифра i

Формат выходного файла

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

Ограничения

2 ≤ n ≤ 10.

2 ≤ k ≤ 8.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3
#3.
1.2
#4#
        
6
2
3
#43
1.2
#5#
        
-1

0.107s 0.003s 31