ЗАДАЧИ
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

   Решение

Задачи

Страница: 1 2 3 4 5 6 7 >> [Всего задач: 399]      



Задача 34913

Темы:   [ Доказательство от противного ]
[ Перебор случаев ]
Сложность: 2+
Классы: 7,8

Среди любых десяти из шестидесяти ребят найдутся трое одноклассников. Докажите, что среди всех них найдутся 15 одноклассников.

Прислать комментарий     Решение

Задача 103976

Темы:   [ Доказательство от противного ]
[ Объединение, пересечение и разность множеств ]
Сложность: 2+
Классы: 5,6,7

Юра, Лёша и Миша коллекционируют марки. Количество Юриных марок, которых нет у Лёши, меньше, чем количество марок, которые есть и у Юры, и у Лёши. Точно так же, число Лёшиных марок, которых нет у Миши, меньше, чем число марок, которые есть и у Лёши и у Миши. А число Мишиных марок, которых нет у Юры, меньше, чем число марок, которые есть и у Юры и у Миши. Докажите, что какая-то марка есть у каждого из трех мальчиков.
Прислать комментарий     Решение


Задача 67004

Тема:   [ Доказательство от противного ]
Сложность: 3
Классы: 7,8,9,10,11

Перед Шариком лежит бесконечное число котлет, на каждой сидит по мухе. На каждом ходу Шарик последовательно делает две операции:

1) съедает какую-то котлету вместе со всеми сидящими на ней мухами;

2) пересаживает одну муху с одной котлеты на другую (на котлете может быть сколько угодно мух).

Шарик хочет съесть не более миллиона мух. Докажите, что он не может действовать так, чтобы каждая котлета была съедена на каком-то ходу.

Прислать комментарий     Решение

Задача 35422

Тема:   [ Доказательство от противного ]
Сложность: 3
Классы: 8,9,10

1000 яблок разложены в несколько корзин. Можно убирать корзины и вынимать яблоки из корзин. Докажите, что можно добиться того, чтобы во всех корзинах стало поровну яблок и общее число оставшихся яблок было не меньше 100.
Прислать комментарий     Решение


Задача 31353

Темы:   [ Доказательство от противного ]
[ Примеры и контрпримеры. Конструкции ]
Сложность: 3+
Классы: 6,7,8

В автобусе едут 20 пассажиров, и у каждого много монет по 10, 15 и 20 копеек. Каждый должен заплатить 5 копеек.
Могут ли они сделать это, использовав (в том числе и для обмена между собой)   а) 24 монеты;   б) 25 монет?

Прислать комментарий     Решение

Страница: 1 2 3 4 5 6 7 >> [Всего задач: 399]      



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

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