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