---> 41 задач <---
Страница: 1 2 3 4 5 6 7 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

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

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

В первой строке входных данных содержатся два числа: L - длина лавочки и K - количество гранитных блоков-ножек. Оба числа натуральные и не превышают 10 000.

Во второй строке следуют K различных целых неотрицательных чисел, задающих положение каждой ножки. Положение ножки определяется расстоянием от левого края плиты до левого края ножки (ножка - это куб размером 1×1×1). Ножки перечислены слева направо (то есть начиная с ножки с меньшим расстоянием до левого края).

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

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

Пример

Входные данные Выходные данные
5 2
0 2
2
13 4
1 4 8 11
4 8
14 6
1 6 8 11 12 13
6 8

Второй пример соответствует лавочке на рисунке.

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

Дан набор натуральных чисел: a1, …, aN. По этому набору строится таблица чисел размером N x N по следующему правилу: в клетку i-го столбца j-й строки записывается большее из чисел ai и aj при ij (если ai = aj, то записывается это число); на пересечении i-го столбца и i-й строки записывается число 0.

Дана таблица чисел. Требуется определить, могла ли она быть построена по данным правилам из какого-либо набора чисел a1, …, aN.

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

В первой строке входных данных задается натуральное число N – размер таблицы (1N 500). В следующих N строках содержится по N чисел – числа соответствующей строки из таблицы (все числа целые неотрицательные и не превосходят 1 000).

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

В одну строку выведите через пробел числа a1, …, aN. Если решений несколько, выведите любое из них. Если набора, удовлетворяющего данной таблице, не существует, выведите одно число "-1".

Примеры
Входные данные
3
0 4 6
4 0 6
6 6 0
Выходные данные
4 4 6
Входные данные
2
0 1
2 0
Выходные данные
-1
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Последовательность чисел назовем симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:
1 2 3 4 5 4 3 2 1
1 2 1 2 2 1 2 1
Вашей программе будет дана последовательность чисел. Требуется определить, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.

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

Сначала вводится число \(N\) — количество элементов исходной последовательности (1 ≤ \(N\) ≤ 100). Далее идут \(N\) чисел — элементы этой последовательности, натуральные числа от 1 до 9.

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

Выведите сначала число \(M\) — минимальное количество элементов, которое надо дописать к последовательности, а потом \(M\) чисел (каждое — от 1 до 9) — числа, которые надо дописать к последовательности.

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

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

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

Сначала вводится число \(N\) (1 ≤ \(N\) ≤ 64) – количество выпиленных клеток. В следующих \(N\) строках вводятся координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.

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

Выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).

Пояснения к примерам

1) Вырезан уголок из трех клеток. Сумма длин его сторон равна 8.

2) Вырезана одна клетка. Ее периметр равен 4.

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

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

Восстановите нарисованный Васей многоугольник.

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

В первой строке входных данных содержатся два натуральных числа: \(Y\) - количество строк и \(X\) - количество столбцов листа (3 <= \(Y\) <= 1000, 3 <= \(X\) <= 1000). В каждой из следующих \(Y\) строк задается по \(X\) целых неотрицательных чисел, не превосходящих 4. Ни одна из сторон многоугольника не проходит по границе листа бумаги.

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

Выведите искомый многоугольник в следующем формате.

Выходные данные должны содержать \(Y\) строк по 2\(X\)-1 символов в каждой (по одному символу на клетку и линию между клетками).

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

Гарантируется, что хотя бы одно решение существует. Если решений несколько, выведите любое из них.

Примеры
Входные данные
4 4
0 0 1 0
0 2 3 1
1 3 2 1
0 1 1 0
Выходные данные
...._..
.._|.|.
.|_._|.
.......

Страница: 1 2 3 4 5 6 7 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест