Управление образования г. Якутска

авторизация карта сайта контакты погода
Текущий раздел : / Информатизация образования /
   
Московская олимпиада по информатике 2004/05 г. Заочный тур
04.04.2005 16:33


Задача A                     Автобусная экскурсия

Имя входного файла:

a.in

Имя выходного файла:

a.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Оргкомитет Московской городской олимпиады решил организовать обзорную экскурсию по Москве для участников олимпиады. Для этого был заказан двухэтажный автобус (участников олимпиады достаточно много и в обычный они не умещаются) высотой437 сантиметров. На экскурсионном маршруте встречаются N мостов. Жюри и оргкомитет олимпиады очень обеспокоены тем, что высокий двухэтажный автобус может не проехать под одним из них. Им удалось выяснить точную высоту каждого из мостов. Автобус может проехать под мостом тогда и только тогда, когда высота моста превосходит высоту автобуса. Помогите организаторам узнать, закончится ли экскурсия благополучно, а если нет, то установить, где произойдет авария.

Формат входных данных

Во входном файле сначала содержится число N (1£N£1000). Далее идут N натуральных чисел, не превосходящих 10000 - высоты мостов в сантиметрах в том порядке, в котором они встречаются на пути автобуса.

Формат выходных данных

В единственную строку выходного файла нужно вывести фразу "No crash", если экскурсия закончится благополучно. Если же произойдет авария, то нужно вывести сообщение "Crash k", где k - номер моста, где произойдет авария. Фразы выводить без кавычек ровно с одним пробелом внутри.

Примеры

a.in

a.out

1

763

No crash

3

763 245 113

Crash 2

1

437

Crash 1

Задача B                     Сапер

Имя входного файла:

b.in

Имя выходного файла:

b.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Мальчику Васе очень нравится известная игра "Сапер" ("Minesweeper").

В "Сапер" играет один человек. Игра идет на клетчатом поле (далее будем называть его картой) NxM (N строк, M столбцов). В K клетках поля стоят мины, в остальных клетках записано либо число от 1 до 8 - количество мин в соседних клетках, либо ничего не написано, если в соседних клетках мин нет. Клетки являются соседними, если они имеют хотя бы одну общую точку, в одной клетке не может стоять более одной мины. Изначально все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. Если в открытой им клетке оказывается мина - он проигрывает, иначе игроку показывается число, которое стоит в этой клетке, и игра продолжается. Цель игры - открыть все клетки, в которых нет мин.

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

По заданным N, M, K и координатам мин восстановите полную карту.

Формат входных данных

В первой строке входного файла содержатся числа N, M и K (1£N£200, 1£M£200, 0£K£N×M). Далее идут K строк, в каждой из которых содержится по два числа, задающих координаты мин. Первое число в каждой строке задает номер строки клетки, где находится мина, второе число - номер столбца. Левая верхняя клетка поля имеет координаты (1,1), правая нижняя - координаты (N,M).

Формат выходных данных

Выходной файл должен содержать N строк по M символов - соответствующие строки карты. j-й символ i-й строки должен содержать символ '*' (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо '.' (точка), если клетка (i,j) пустая.

Пример

b.in

b.out

10 9 23

1 8

2 3

3 2

3 3

4 3

5 7

6 7

7 1

7 2

7 3

7 4

7 5

7 6

7 7

7 8

8 1

8 3

8 5

8 7

9 3

9 5

9 6

9 7

.111..1*1

13*2..111

1**3.....

13*2.111.

.111.2*2.

233335*41

********1

*6*7*8*41

13*4***2.

.1122321.

Задача C                     Робот K-79

Имя входного файла:

c.in

Имя выходного файла:

c.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Петя написал программу движения робота К-79. Программа состоит из следующих команд:

·         S - сделать шаг вперед

·         L - повернуться на 90° влево

·         R - повернуться на 90° вправо

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

Формат входных данных

Во входном файле записана одна строка из заглавных латинских букв S, L, R, описывающая программу для робота. Общее число команд в программе не превышает 200, при этом команд S - не более 50.

Формат выходных данных

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

Примеры

c.in

c.out

SSLSLSLSSRSRS

5

LSSSS

-1

Задача D                     Многочлен

Имя входного файла:

d.in

Имя выходного файла:

d.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

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

Формат входных данных

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

[Коэффициент*]x[^Степень]

или

Коэффициент

где Коэффициент - натуральное число, не превосходящее 100, x - символ переменной (всегда маленькая латинская буква x), Степень - натуральное число, не превосходящее 4. Параметры, взятые в квадратные скобки, могут быть опущены. Во второй строке записано одно целое число - значение x.

Формат выходных данных

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

Ограничения

Все числа в исходном файле по модулю не превосходят 100. Количество одночленов не более 10 (могут быть одночлены одинаковой степени).

Примеры

d.in

d.out

8*x+5

7

61

-2+x^1-3*x^2+x^2+100*x^3-2*x

0

-2

Задача E                      Головоломка

Имя входного файла:

e.in

Имя выходного файла:

e.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

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

P

O

L

T

E

R

W

Y

M

S

O

A

I

P

T

B

D

A

N

R

L

E

M

E

S

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

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

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

Формат входных данных

В первой строке входного файла записаны два числа N (1£N£10) и M (0£M£200). Следующие N строк по N заглавных латинских букв описывают ребус. Следующие M строк содержат слова. Слова состоят только из заглавных латинских букв, каждое слово не длиннее 200 символов. Гарантируется, что в таблице можно найти и вычеркнуть по описанным выше правилам все ключевые слова.

Формат выходных данных

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

Примеры

e.in

e.out

5 3

POLTE

RWYMS

OAIPT

BDANR

LEMES

OLYMPIAD

PROBLEM

TEST

ANSWER

3 2

ISQ

ABC

IQW

I

IS

ABCQQW

Задача F                      Поиск прямоугольников

Имя входного файла:

f.in

Имя выходного файла:

f.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

На поле NxM клеток (N строк и M столбцов) положили K прямоугольников один поверх другого в случайном порядке. Длины сторон прямоугольников выражаются целым числом клеток. Прямоугольники не выходят за границы поля. Границы прямоугольников совпадают с границами клеток поля.

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

По содержимому таблицы требуется определить положение и размеры прямоугольников.

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

Формат входных данных

В первой строке входного файла записаны целые числа N, M, K (1£N£200, 1£M£200, 1£K£255). Далее следует N строк по M чисел в каждой - содержимое таблицы. Все числа в таблице целые, находятся в диапазоне от 0 до K включительно.

Формат выходных данных

0

2

2

2

2

0

2

2

2

2

1

1

2

2

2

1

1

0

0

0

В выходной файл необходимо выдать K строк. Каждая строка должна описывать соответствующий ее номеру прямоугольник четырьмя числами R C H W (R и C должны описывать координаты левого нижнего угла прямоугольника, а H и W - координаты правого верхнего угла). Числа должны разделяться пробелом.

Оси координат устроены следующим образом: начало координат находится в нижнем левом углу поля, а оси координат направлены вдоль сторон поля (ось Ox - вдоль нижней стороны, а ось Oy - вдоль левой стороны). Клетки поля имеют размер 1x1. Таким образом, координаты левого нижнего угла поля - (0,0), правого верхнего - (M,N). Заметьте, что вы должны вывести координаты углов прямоугольников (как точек) в этой системе координат, а не координаты угловых клеток, покрытых прямоугольниками.

Пример

f.in

f.out

4 5 2

0 2 2 2 2

0 2 2 2 2

1 1 2 2 2

1 1 0 0 0

0 0 2 2

1 1 5 4

Задача G                     Разноцветные треугольники

Имя входного файла:

g.in

Имя выходного файла:

g.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

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

Требуется привести любую из допустимых раскрасок.

Формат входных данных

В первой строке записано одно число N (4£N£100) - количество вершин многоугольника.

Далее следуют N-3 строки, в каждой из которых записана пара натуральных чисел - номера вершин, которые соединяет диагональ. Считается, что все вершины занумерованы последовательно натуральными числами от 1 до N.

Формат выходных данных

В выходном файле должны быть 2N-3 строки. Каждая строка содержит 3 числа: номера вершин, которые соединяет данная сторона или диагональ и цвет (1 - синий, 2 - красный), в который Вы красите данную сторону или диагональ.

Примеры

g.in

g.out

4

1 3

1 2 1

2 3 1

3 4 1

4 1 1

1 3 2

6

1 3

3 5

5 1

1 2 1

2 3 1

3 4 1

3 5 2

4 5 1

5 6 2

5 1 1

6 1 2

1 3 2

Задача H                      Побег с космической станции

Имя входного файла:

h.in

Имя выходного файла:

h.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Представьте, что вы состоите на службе во внешней разведке Межгалактического Альянса Республиканских Сил (МАРС). Одному из агентов разведки крупно не повезло, и он был захвачен на засекреченной космической базе. К счастью, внешней разведке МАРС удалось заполучить план этой базы. И вот теперь вам поручено разработать план побега.

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

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

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

Формат входных данных

В первой строке входного файла записаны числа N и M (2£N£100, 2£M£100), задающие размеры базы: N - количество строк в плане базы, M - количество столбцов. Во второй строке записаны начальные координаты агента XA,YA (1£XA£N, 1£YA£M). Первая координата задает номер строки, вторая - номер столбца. Строки нумеруются сверху вниз, столбцы слева направо.

Далее следуют N строк по M чисел, задающих описание стен внутри базы: 1 соответствует стенке, 0 - её отсутствию.

Далее в отдельной строке записано число H (0£H£1000) - количество гипертуннелей. В последующих H строках идут описания гипертуннелей. Каждый гипертуннель задается 4 числами: X1, Y1, X2, Y2 (1£X1,X2£N; 1£Y1,Y2£M) - координатами входа и выхода гипертуннеля. Никакие два гипертуннеля не имеют общего входа.

После этого в отдельной строке следует число K (1£K£10) - количество выходов с базы. В последующих K строках идут описания выходов с базы. Каждый выход задается двумя координатами X и Y (1£X£N; 1£Y£M).

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

Формат выходных данных

Если побег невозможен, выведите единственную строку с надписью "Impossible". В противном случае в первой строке выдайте число L - количество отсеков в кратчайшем пути побега. В последующих L строках последовательно выведите координаты отсеков кратчайшего пути побега. Если решений несколько, то выведите любое из них.

Пример

h.in

h.out

4 5

2 1

0 0 0 0 0

0 1 0 0 0

0 0 0 0 0

0 0 0 0 0

2

1 2 1 4

3 1 1 4

1

2 4

4

2 1

3 1

1 4

2 4

Задача I   Неподвижная точка карты

Имя входного файла:

i.in

Имя выходного файла:

i.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Первый учебный день шестиклассника Пети начался с урока географии. Учитель объяснял классу, что перед тем, как изучать просторы нашей Родины, нужно научиться пользоваться географическими картами. Было также упомянуто и о том, что такое масштаб карты. В качестве домашней работы Пете и его одноклассникам задали нарисовать план (карту) своей комнаты, соблюдая масштабирование. Петю очень заинтересовало задание учителя, и поэтому, как только он пришел из школы домой, он принялся рисовать план. Это занятие было очень увлекательным, но вскоре с работы пришла Петина мама, сказала, что здоровье превыше всего и позвала его обедать. Во время обеда она по пути на кухню зашла в Петину комнату и решила, что ее надо проветрить. Для этого она открыла окно, перед которым стоял Петин стол.

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

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

Формат входных данных

Комната Пети и ее план имеют форму прямоугольника. Первая строка входного файла содержит два вещественных числа: ширину X и длину Y комнаты Пети (1£X£1000, 1£Y£1000). Комната расположена в декартовой прямоугольной системе координат так, что углы комнаты расположены в точках с координатами (0,0), (X,0), (X,Y), (0,Y).

Вторая строка содержит восемь вещественных чисел, описывающих положение углов плана комнаты в той же самой системе координат. Сначала задаются координаты того угла плана, который соответствует углу комнаты с координатами (0,0), затем - (X,0), (X,Y), наконец, (0,Y). Гарантируется, что входные данные корректны, то есть план является прямоугольником, линейные размеры плана находятся в полном соответствии с линейными размерами комнаты, план не выходит за границы комнаты.

Все числа во входном файле вещественные, заданы с точностью 5 знаков после десятичной точки. План выполнен в масштабе не менее 0.0001 и не более 1. Масштаб не может быть равен 1. Карта расположена лицевой стороной вверх.

Формат выходных данных

В первую строку выходного файла выведите 2 вещественных числа - координаты неподвижной точки плана и пола. Ответ нужно выдать с 3 знаками после десятичной точки.

Пример

i.in

i.out

10.00000 5.00000

3.00000 2.50000  1.00000 2.50000  1.00000 1.50000  3.00000 1.50000

2.500 2.083

Задача J                       Узор

Имя входного файла:

j.in

Имя выходного файла:

j.out

Максимальное время работы на одном тесте:

5 секунд

Максимальный объем используемой памяти:

16 мегабайт

В комнате решили сделать паркетный пол. Причем есть задумка выложить на полу некоторый узор.

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

Существует несколько форм паркетных плиток:

1

1

2

1

2

3

1

2

3

Форма 1

Форма 2

Форма 3

Форма 4

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

Изначально, какая-то часть пола может уже быть выложена плиткой.

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

Формат входных данных

В первой строке входного файла записаны три числа: N, M (размеры комнаты) и K (количество доступных видов плитки). 1£N£8, 1£M£8, 1£K£10. Далее идет описание желаемой раскраски пола. Описание представляет собой N строчек по M чисел в каждой, где 0 обозначает белый цвет, 1 - черный, 2 - то, что квадрат уже выложен плиткой. В последних K строчках находятся описания доступных типов плитки в следующем формате:

форма

стоимость

окраска

Форма - это число от 1 до 4, описывающее форму плитки (см. рисунок выше)

Стоимость - это натуральное число, не превосходящее 10000, задающее стоимость одной плитки такого типа

Окраска - это от одного до трех чисел 0 или 1. Количество чисел совпадает с количеством квадратиков, из которых состоит плитка. Числа задают цвета квадратиков плитки в том порядке, в каком квадратики пронумерованы на рисунке.

Формат выходных данных

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

Пример

j.in

j.out

4 3 3

2 2 2

2 0 0

2 1 2

2 2 2

2 10 0 0

1 5 1

4 6 0 0 1

15

Задача K                     Склад

Имя входного файла:

k.in

Имя выходного файла:

k.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

Склад конторы MacroHard представляет собой прямоугольную комнату размером NxM. На складе нарисована разметка, состоящая из линий, параллельных стенам склада, которые разбивают его на NxM квадратов 1x1.

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

Размещать изделия на складе разрешается только так, чтобы хотя бы одна сторона изделия была параллельна какой-то из стен склада, и, вдобавок, все углы изделия находились в точках пересечения линий разметки склада. Рисунки 1,2,3 иллюстрируют неправильное положение изделий, а 4,5 - правильное.

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

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

Формат входных данных

В первой строке входного файла записаны три целых числа: N, M (размеры склада) и K (количество изделий, которые уже находятся на складе). Следующие K строк содержат по 6 целых чисел - координаты углов соответствующего изделия. Система координат введена так, что оси координат параллельны стенам склада и при этом один из углов склада имеет координаты (0,0), а противоположный - (N,M).

Ограничения

1£N£4, 1£M£4

Формат выходных данных

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

Пример

k.in

k.out

3 3 1

0 1 1 2 2 1

5

0 1 1 2 0 3

0 3 3 3 3 0

1 0 2 1 3 0

0 1 2 1 1 0

0 0 1 0 0 1

Задача L                      Кубическая гостиница

Имя входного файла:

l.in

Имя выходного файла:

l.out

Максимальное время работы на одном тесте:

3 секунды

Максимальный объем используемой памяти:

16 мегабайт

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

Через год были сделаны фотографии гостиницы с каждой из 6 сторон: спереди, слева, сзади, справа, сверху, снизу. За год эксплуатации могло случиться так, что из-за непрочного крепления некоторые блоки, из которых была построена гостиница, оторвались и улетели в открытый космос. Комиссия по восстановлению гостиницы хочет по сделанным снимкам установить максимальное возможное количество оставшихся блоков.

Итак, вам необходимо по видам гостиницы (куба N×N×N, из которого, возможно, выкинуты некоторые кубики 1×1×1) с 6 сторон определить, из какого максимального количества блоков 1×1×1 она может состоять. Может оказаться так, что гостиница состоит из двух или более не связанных между собой частей.

Формат входных данных

В первой строке входного файла находится число N - размер гостиницы (1≤N≤10). На следующих N строках записаны виды гостиницы с 6 сторон (в следующем порядке: спереди, слева, сзади, справа, сверху, снизу). Каждый такой вид представляет собой таблицу N×N, в которой различными заглавными латинскими буквами обозначены различные цвета, а символом "." (точка) - то, что в этом месте можно будет смотреть прямо сквозь гостиницу. Два последовательных вида отделяются друг от друга ровно одним пробелом в каждой из N строк.

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

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

Формат выходных данных

Выведите в выходной файл одно число - искомое максимальное количество оставшихся блоков в гостинице.

Пример

l.in

l.out

3

.R. YYR .Y. RYY .Y. .R.

GRB YGR BYG RBY GYB GRB

.R. YRR .Y. RRY .R. .Y.

11

2

ZZ ZZ ZZ ZZ ZZ ZZ

ZZ ZZ ZZ ZZ ZZ ZZ

8

© 2004 Якутское городское управление образования
При использовании материалов сервера ссылка на источник и этот сайт обязательна.