Задача A. Чёрно-белый поворот

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

Условие

Чёрно-белое изображение состоит из h строк по w пикселей. Каджый пиксель имеет значение 0 или 1. С целью экономии памяти изображение было сжато следующим образом: для каждой строки сначала записывается значение первого пикселя, затем длины цепочек подряд идущих нулей и единиц. Например, строка 00100001110 будет закодирована последовательностью 0, 2, 1, 4, 3, 1.

Данное сжатое чёрно-белое изображение требуется повернуть на 90 градусов по часовой стрелке, и вывести, используя тот же метод сжатия.

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

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

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

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

Ограничения

w, h ≥ 1, w × h ≤ 108, гарантируется, как исходное, так и повёрнутое изображение содержат в сжатом виде не более 106 чисел.

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

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

Задача B. Морская метеорология

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

Условие

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

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

Рекомендуется рассмотреть частичные решения для следующих случаев

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

Во входном файле содержится число вершин многоугольника N. За ним следует N пар целых чисел xi yi, — координаты вершин многоугольника, перечисленных в порядке обхода. Граница многоугольника не имеет самопересечений, но многоугольник не обязательно является выпуклым.

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

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

Ограничения

3 ≤ N ≤ 100, 5000 ≤ xi, yi ≤ 5000

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

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

Задача C. Переворот бокалов

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

Условие

На столе стоят в ряд N бокалов, пронумерованных слева направо от 1 до N. Первоначально все бокалы стоят дном вниз. Над бокалами можно выполнить операцию переворот. За один переворот ровно M любых бокалов переворачиваются так, что те бокалы, которые стояли дном вниз, оказываются перевернутыми вверх дном, а остальные из M бокалов ставятся вниз дном. Требуется за минимальное количество переворотов добиться того, чтобы все бокалы оказались перевернутыми вверх дном, или определить, что это невозможно.

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

Входной файл содержит числа N и M.

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

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

Ограничения

1 < N < 1000

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

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

0.036s 0.005s 15