ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Фильтр
Сложность с по   Класс с по  
Выбрана 1 задача
Версия для печати
Убрать все задачи

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

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

Информация, записанная на билете, кодируется K числами (0 или 1). При этом непосредственно на билете записывается последовательность из N чисел (N ³ K) так, что числа, записанные на расстоянии K, совпадают. Таким образом, для проверки подлинности билета достаточно проверить, что все числа на расстоянии K совпадают. К сожалению, при считывании информации с билета иногда могут происходить ошибки - считается, что одно из чисел может исказиться (то есть 0 заменится на 1, или 1 - на 0). Такой билет все равно нужно считать подлинным. Во всех остальных случаях билет считается поддельным.

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

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

В первой строке входного файла d.in записаны числа N и K (1 £ N £ 50000, 1 £ K £ 1000, K £ N). Во второй строке записано N чисел, каждое из которых является 0 или 1 - информация, считанная с билета.

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

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

Примеры

d.in

d.out

6 2

1 0 1 0 1 0

OK

0

6 2

1 1 1 0 1 0

OK

2

6 2

1 1 1 0 0 0

FAIL

   Решение

Задачи

Страница: << 4 5 6 7 8 9 10 >> [Всего задач: 277]      



Задача 64172

Тема:   [ Многомерные массивы ]
Сложность: 2
Классы: 8

Хождение за золотом - 1

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

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

Входные данные
Во входном файле записано план комнаты. Сначала записано количество
строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов
золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец. Далее
записаны координаты этих клеток (координаты клетки - это два числа:
первое определяет номер строки, второе - номер столбца, верхняя
левая клетка на плане имеет координаты (1,1), правая нижняя - (N,M)).
Гарантируется, что мудрец не проходил по одной и той же клетке дважды.

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

Пример входного файла
3 4
1 2 3 4
5 6 7 8
9 10 11 12
5
1 1
2 1
2 2
2 3
1 3

Пример выходного файла
22
Прислать комментарий     Решение

Задача 64173

Тема:   [ Многомерные массивы ]
Сложность: 2
Классы: 8

Хождение за золотом - 2

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

Входные и выходные данные такие же, как в предыдущей задаче.
Дополнительное ограничение: число пройденных мудрецом клеток
не превышает 10000.

Пример входного файла
3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
1 1
2 1
2 2
2 3
1 3
1 2
1 1
1 2
2 2

Пример выходного файла
30
Прислать комментарий     Решение

Задача 64174

Тема:   [ Многомерные массивы ]
Сложность: 2
Классы: 8

Хождение за золотом - 3

Задача такая же, как и предыдущая, только передвижения мудреца задаются
другим способом:

Входные данные
Во входном файле записано план комнаты. Сначала записано количество
строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов
золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец.
1<=X<=10000.

Известно, что мудрец начал с клетки с координатами (1,1).
Далее записано X-1 число: куда перемещался мудрец:
число 1 обозначает, что мудрец делал шаг вправо,
число 2 обозначает, что мудрец делал шаг вверх,
число 3 обозначает, что мудрец делал шаг влево,
число 4 обозначает, что мудрец делал шаг вниз.

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

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

3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
4 1 1 2 3 3 1 4
Прислать комментарий     Решение

Задача 64175

Тема:   [ Двойное динамическое программирование ]
Сложность: 2
Классы: 8

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

Входные данные
Во входном файле задано два числа N и M - размеры таблицы (1<=N<=10,
1<=M<=10).

Выходные данные
В выходной файл запишите искомое число способов.

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

Пример входного файла
2 3

Пример выходного файла
3

Пояснение
Если у нас есть таблица из 2 строк и 3 столбцов, то существуют следующие
способы попасть из левого верхнего угла в правый нижний:
1) вниз, вправо, вправо
2) вправо, вниз, вправо
3) вправо, вправо, вниз

Еще один пример входного файла
3 3

Пример выходного файла
6
Прислать комментарий     Решение

Задача 64176

Тема:   [ Двойное динамическое программирование ]
Сложность: 2
Классы: 8

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

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

Входные данные
Во входном файле задано два числа N и M - размеры таблицы (1<=N<=20,
1<=M<=20). Затем идет N строк по M чисел в каждой - размеры штрафов
в у.е. за прохождение через соответствующие клетки (числа от 0 до 100).

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

Пример входного файла
3 4
1 1 1 1
5 2 2 100
9 4 2 1

Пример выходного файла
8
Прислать комментарий     Решение

Страница: << 4 5 6 7 8 9 10 >> [Всего задач: 277]      



© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .