Олимпиадная информатика - 2015

Разбор и решение задач муниципального уровня

Задача « Красивое число»

Целое положительное число m мы назовём красивым, если в его записи между любыми двумя чётными цифрами есть хотя бы одна нечётная цифра, а между любыми двумя нечётными цифрами хотя бы одна чётная цифра.Вам нужно определить, будет ли данное m красивым числом.

Формат входного файла beauty.in Входной файл: В первой строке одно целое число n - количество цифр в записи числа m (1 <= n <= 10&sup6;). Во второй строке записаны без пробелов n цифр от 0 до 9. Первый символ в этой строке - ненулевая цифра.

Формат выходного файла beauty.out Выходной файл: Выведите "Yes", если данное число красивое, и "No" - в противном случае.

INPUT.TXT
3
123
OUTPUT.TXT
YES
INPUT.TXT
5
18190
OUTPUT.TXT
NO

посмотреть решение здесь

Разбор задачи №1 "Красивое число"
предложено Песковым Аркадием Геннадьевичем, МОУ «Сюкеевская средняя общеобразовательная школа»
Камско-Устьинского муниципального района РТ

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

Будем последовательно рассматривать соседние пары символов. Для проверки совпадения или несовпадения чётности цифр используем, что сумма двух чисел одной чётности – чётная, а разной чётности - нечётная. Рассмотрев очередную пару символов, первому символу придадим значение второго и запросим значение следующего символа.

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