F. Рудольф и декодирование

Codeforces
IDCF10132F
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Для защиты своих наиболее важных научных работ от посторонних посягательств Рудольф решил разработать собственный шифр. Тексты работ Рудольфа включают n различных символов. Для каждого из этих символов Рудольф придумал определённый код — последовательность бит, на которую указанный символ должен быть заменён при шифровании. Например, если символам _C_, _D_, _E_ и _O_ соответствуют коды _0_, _1_, _10_ и _11_, то слово «_CODE_» в зашифрованном виде выглядит так: _011110_. Экспериментируя с получившимся шифром, Рудольф, к своему ужасу, обнаружил, что иногда сообщение становится невозможно восстановить! Например, показанная выше последовательность _011110_ может быть декодирована не только как «_CODE_», но и как «_CDOE_», и даже как «_CDDDDC_». Охваченный паникой, Рудольф придумал новые коды символов, но он всё ещё опасается, что и этот шифр может оказаться неподходящим. Помогите Рудольфу определить, всегда ли его шифр можно декодировать однозначно. Первая строка содержит целое число n (1 ≤ n ≤ 100) — количество различных символов в текстах Рудольфа. Следующие n строк описывают коды символов. Каждая из них содержит строку si (1 ≤ |si| ≤ 20), состоящую из цифр 0 и 1, на которую i-й символ алфавита заменяется при шифровании. Если любое зашифрованное сообщение, составленное из данных кодов, может быть декодировано единственным образом, выведите «_YES_» (без кавычек). В противном случае, выведите «_NO_» (без кавычек). ## Входные Данные Первая строка содержит целое число n (1 ≤ n ≤ 100) — количество различных символов в текстах Рудольфа.Следующие n строк описывают коды символов. Каждая из них содержит строку si (1 ≤ |si| ≤ 20), состоящую из цифр 0 и 1, на которую i-й символ алфавита заменяется при шифровании. ## Выходные Данные Если любое зашифрованное сообщение, составленное из данных кодов, может быть декодировано единственным образом, выведите «_YES_» (без кавычек). В противном случае, выведите «_NO_» (без кавычек). ## Примеры Входные данные4011011Выходные данныеNOВходные данные4000011011Выходные данныеYES [samples]
**Definitions** Let $ n \in \mathbb{Z} $ be the number of distinct characters. Let $ C = \{s_1, s_2, \dots, s_n\} $ be a set of binary codewords, where each $ s_i \in \{0,1\}^* $ and $ 1 \leq |s_i| \leq 20 $. **Constraints** $ 1 \leq n \leq 100 $ **Objective** Determine whether the code set $ C $ is uniquely decodable. That is, for any finite sequence of codewords from $ C $, there exists exactly one way to parse it into a sequence of codewords from $ C $. Output "YES" if $ C $ is uniquely decodable; otherwise, output "NO".
API Response (JSON)
{
  "problem": {
    "name": "F. Рудольф и декодирование",
    "description": {
      "content": "Для защиты своих наиболее важных научных работ от посторонних посягательств Рудольф решил разработать собственный шифр. Тексты работ Рудольфа включают n различных символов. Для каждого из этих символ",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10132F"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Для защиты своих наиболее важных научных работ от посторонних посягательств Рудольф решил разработать собственный шифр.\n\nТексты работ Рудольфа включают n различных символов. Для каждого из этих символ...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ n \\in \\mathbb{Z} $ be the number of distinct characters.  \nLet $ C = \\{s_1, s_2, \\dots, s_n\\} $ be a set of binary codewords, where each $ s_i \\in \\{0,1\\}^* $ and $ 1 \\leq |s_i...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments