Загублений рядок
Limits: 2 sec., 256 MiB
У Марічки є рядок з символів A
, B
та
C
.
Спершу вона для кожних трьох сусідніх символів порахувала, який символ серед них найчастіше зустрічається, та записала скільки разів зустрічається цей символ. Після цього у неї утворилась послідовність, у якій кожне значення від 1 до 3. Далі вона вирішила записати такі пари (\(a_i\), \(b_i\)), які означають що у послідовності було записано \(b_1\) значень \(a_1\), потім \(b_2\) значень \(a_2\) і так далі.
Марічка розказала Зенику, які пари чисел вона отримала, а хлопцю стало цікаво, чи дійсно ж існує такий рядок, що може утворити ці пари.
Наприклад, якщо початково у Марічки є рядок CABBBCAB
, то
вона спершу запише послідовність [1, 2, 3, 2, 1, 1], адже серед символів
CAB
усі символи зустрічаються 1 раз, серед символів
ABB
символ B
зустрічається 2 рази, серед
символів BBB
символ B
зустрічається 3 рази і
так далі. Отже, Марічка записує такі пари: [(1, 1), (2, 1), (3, 1), (2,
1), (1, 2)].
Input
У першому рядку задано одне ціле число \(k\) — кількість пар. У наступних \(k\) рядках задано по 2 цілих числа \(a_i\) та \(b_i\).
Output
Виведіть TAK
, якщо існує рядок, що утворює задані пари,
або NI
в протилежному випадку.
Constraints
\(1 \le k \le 2 \cdot 10^5\),
\(1 \le a_i \le 3\), \(a_i \ne a_{i+1}\),
\(1 \le b_i \le 10^9\).
Samples
Input (stdin) | Output (stdout) |
---|---|
5 1 1 2 1 3 1 2 1 1 2 | TAK |
Input (stdin) | Output (stdout) |
---|---|
2 1 1 3 1 | NI |
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|