A. Строковая ловушка ограничение по времени на тест2 секунды
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
Дана строка длины n. В начальный момент времени вы находитесь в позиции 1 (позиции нумеруются с единицы), на каждом шаге выполняется переход в другую позицию в соответствии с следующими правилами: если в строке есть еще одна или более позиций, буквы в которых совпадают с буквой в текущей позиции, то вы переходите случайную из них, иначе — двигаетесь на одну позицию вправо.
Можно ли выбраться из строки (под этим понимается, что вы в какой-то момент времени находитесь в позиции n после чего сдвигаетесь вправо) или же Вы попали в строковую ловушку, и вам придется блуждать по ней вечно?
Входные данные
В первой строке дано число n (1 ≤ n ≤ 105) — длина строки.
Во второй строке дана строка s, строка состоит только из строчных букв латинского алфавита.
Выходные данные
Выведите «YES», если выбраться из строки возможно, и «NO» — в противоположном случае.
На ПАСКАЛЕ
задача 1
значит так: у племени 24 буквы и 8 цифр - всего 32 символа в их алфавите.
вес одного символа определяется из формулы: N=2^i (где i - вес одного символа алфавита. подставим 32 в эту формулу и получим
32=2^i представим 32 как двойку в 5 степени и получим верное равенство 2^5=2^i, отсюда i=5 бит
задача 2
запишем условие: N=64, K (количество символов в тексте)=20 найти I
решение: из формулы мощности алфавита найдем вес одного символа
64=2^i, 64 представим как двойку в 6 степени и получим верное равенство 2^6=2^i, отсюда i=6 бит
для вычисления информационного объема воспользуемся формулой I=K*i=20*6=120 бит это и есть ответ
задача3
запишем условие: N=16, I=1/16 Мб, К-?
решение: из формулы мощности алфавита найдем вес одного символа
16=2^i, 16 представим как двойку в 4 степени и получим верное равенство 2^4=2^i, отсюда i=4 бит
выразим информационный объем текста в битах. для этого 1/16Мб*1024*1024*8=524288 бит
для вычисления количества символов в тексте информационного объема воспользуемся формулой I=K*i отсюда К=I/i=522288/4= 131072 символа это и есть ответ
Слово "Рыбка" выводится всегда, поскольку х либо меньше 6, т.е. равно 0,1,2,3,4,5, либо больше 5, т.е. равно 6,7,8,9,10. Соответственно, слово "Птичка" не будет выведено никогда.
Если y>7 (y=8,9,10), то условие y mod 2 = 3 всегда ложно (остаток от деления на два не может быть равен трем) и поэтому выводится слово "плавает". Если же y<=7, то не выводится ничего.
При z, кратном 3 (z=0,3,6,9) проверяется истинность сложного высказывания (x div 2 > 4) and (x mod 2<>1). Оно истинно если при целочисленном делении х на два получается число большее четырех, т.е. при х=10 и при этом х должен быть четным. И тогда будет напечатано в "пруду". Если же это высказывание ложно, печатается "под облаками".
И в конце выводится точка.
Итак, при значениях x,y,z не превышающих 10:
a) Рыбка плавает в пруду. - x=10, y∈[8,9,10], z∈[0,3,6,9]
b) Птичка летает в пруду. - никогда
c) Птичка под облаками. - никогда
d) Рыбка летает под облаками. - никогда
e) Птичка плавает под облаками. - никогда
f) Рыбка летает. - никогда