|
ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
|
Материалы по этой теме:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Версия для печати
Убрать все задачи Максимальное время работы на одном тесте: 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, если все числа были считаны правильно, или номер числа, в котором при считывании произошла ошибка. Если возможных ответов несколько, выведите любой из них (в частности, если для признания билета подлинным можно считать, что ошибок при считывании не было, а можно считать, что была ошибка в одном из чисел - правильным является любой из вариантов ответа). Примеры
|
Страница: 1 2 3 4 5 6 7 >> [Всего задач: 399]
Среди любых десяти из шестидесяти ребят найдутся трое одноклассников. Докажите, что среди всех них найдутся 15 одноклассников.
1) съедает какую-то котлету вместе со всеми сидящими на ней мухами; 2) пересаживает одну муху с одной котлеты на другую (на котлете может быть сколько угодно мух). Шарик хочет съесть не более миллиона мух. Докажите, что он не может действовать так, чтобы каждая котлета была съедена на каком-то ходу.
В автобусе едут 20 пассажиров, и у каждого много монет по 10, 15 и 20 копеек. Каждый должен заплатить 5 копеек.
Страница: 1 2 3 4 5 6 7 >> [Всего задач: 399] |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|
|