4908
Комментарий:
|
5004
|
Удаления помечены так. | Добавления помечены так. |
Строка 38: | Строка 38: |
* Проверяю каждую такую цепочку на введённом тексте, и как только там нашёлся фрагмент-инвариант, объявляю это решением! | * Пытаюсь перекодировать с помощью каждой такой цепочки введённую последовательность байтов, и если в тексте результата нашёлся фрагмент-инвариант, объявляю это решением! |
Наши любимые Лев Николаевич и Анна Аркадьевна вновь пустились в приключения! На этот раз некто взял случайный фрагмент из 75 подряд идущих строк романа, и попытался их перекодировать. Но не точно из кодировки utf-8, а из случайной (набор разрешённых кодировок см. ниже). Кодировка, в которую происходило перекодирование, тоже была выбрана случайно из того же набора. Операция прошла успешно! Возможно, не один раз, а два или даже три (но не больше). Получилась редкостная бНОПНЯ. Вывести первую строку исходного фрагмента, в предположении, что обратная перекодировка также возможна.
- Набор допустимых кодировок:
- cp1026 cp1140 cp1256 cp273 cp437 cp500 cp775 cp850 cp852 cp855 cp857 cp860 cp861 cp862 cp863 cp865 cp866 gb18030 hp_roman8 iso8859_10 iso8859_11 iso8859_13 iso8859_14 iso8859_15 iso8859_16 iso8859_2 iso8859_4 iso8859_5 iso8859_9 koi8_r mac_cyrillic mac_greek mac_latin2 mac_roman utf_8
- Ввод делать со стандартного ввода (не из файла)
…содержимое файла…
- Файл с примером получен двумя операциями перекодирования:
- cp775 → gb18030, cp1026 → iso8859_9
- Например, в Linux это аналогично вот такой конструкции:
$ cat fragment | iconv -f cp775 -t gb18030 | iconv -f cp1026 -t iso8859-9 > bnopnya
Чтобы проверить: iconv -t cp1026 -f iso8859-9 bnopnya | iconv -t cp775 -f gb18030
Подсказка: число в 75 строк взято не случайно! В этой задаче сначала нужно поисследовать текст (я написал маленькую программку (спойлер):
)
она. - Не говорите, пожалуйста, со мной про оперу, вы ничего не понимаете в
Ещё один вариант редкостной бНОПНи, на этот раз 3 перекодировки
внаймы, а самому хозяйничать, держать скотину, навозить поля, сажать леса.
('iso8859_5', 'utf_8') ('koi8_r', 'gb18030') ('iso8859_10', 'gb18030')
- На моём компьютере решение заняло 5 секунд (но бывает и до 10; на EJudge, соответственно, примерно до 20)
Окончательный спойлер: