Skibidi String #13091

Skibidi String

1 секунда
256 мегабайтів

Для рядка позначимо через кількість різних непорожніх підрядків рядка . Наприклад, f(\mathtt{aab}) = 5: підрядки — це , , , , .

Дано ціле число і бінарний рядок довжини n-2, де символи мають індекси t_1, \ldots, t_{n-2}.

Назвемо рядок довжини Skibidi, якщо, зсуваючи вікно довжини по рядку , ми отримаємо n-2 вікон, і для кожного 1 \le i \le n-2 -те вікно задовольняє умову:

f\!\left(s_i s_{i+1} s_{i+2}\right) \bmod 2 = t_i.

Визначте лексикографічно найменший рядок Skibidi , що складається з малих латинських літер.

^\daggerОперація взяття остачі. Для додатних цілих і запис u \bmod v означає остачу від ділення на .

Наприклад, для s = \mathtt{aabcba} маємо important ! : must solve with O(3^6*n) dp

\big(f(\mathtt{aab}) \bmod 2,\ f(\mathtt{abc}) \bmod 2,\ f(\mathtt{bcb}) \bmod 2,\ f(\mathtt{cba}) \bmod 2\big) = (1, 0, 1, 0),

тому t = \mathtt{1010}, тобто t_1=1,\ t_2=0,\ t_3=1,\ t_4=0.

Вхідні дані

Перший рядок містить одне ціле число (1 \le T \le 10^4) — кількість наборів вхідних даних.

Перший рядок кожного набору вхідних даних містить ціле число (3 \le n \le 2 \cdot 10^5) — довжину потрібного рядка.

Другий рядок кожного набору вхідних даних містить бінарний рядок довжини n-2 (t_i \in \{\mathtt{0}, \mathtt{1}\}).

Гарантується, що сума по всіх наборах вхідних даних не перевищує 2 \cdot 10^5.

Вихідні дані

Для кожного набору вхідних даних виведіть лексикографічно найменший рядок , що складається з малих латинських літер і задовольняє умови.

Приклади

Приклад 1

Loading
Loading

Примітка

Для першого набору вхідних даних s = \mathtt{aabcba}:

  • i = 1: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

  • i = 2: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

  • i = 3: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

  • i = 4: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

Отже, отриманий дорівнює , як і потрібно.

Для другого набору вхідних даних s = \mathtt{abcbaa}:

  • i = 1: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

  • i = 2: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

  • i = 3: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

  • i = 4: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

Отже, отриманий дорівнює , як і потрібно.

Для третього набору вхідних даних s = \mathtt{aaabcaa}:

  • i = 1: має f = 3 різних непорожніх підрядків, тому f \bmod 2 = 1.

  • i = 2: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

  • i = 3: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

  • i = 4: має f = 6 різних непорожніх підрядків, тому f \bmod 2 = 0.

  • i = 5: має f = 5 різних непорожніх підрядків, тому f \bmod 2 = 1.

Отже, отриманий дорівнює , як і потрібно.

Оцінювання

  1. Підзадача ( балів): (t=\mathtt{00000 \ldots 0})

  2. Підзадача ( балів): (t=\mathtt{11111\ldots 1})

  3. Підзадача ( балів): (1 \le \sum n \le 1000)

  4. Підзадача ( балів): (1 \le \sum n \le 10^4)

  5. Підзадача ( балів): Без додаткових обмежень