Нове Біло-Чорне Дерево#11145

Нове Біло-Чорне Дерево

7 секунд
512 мегабайтів
Дуже складна

Наомі вивчила червоно-чорні дерева, а тепер настав час розібратися з біло-чорними деревами. Вона читає книгу з алгоритмів, де на деяких сторінках зображені дерева, але їхні ребра з часом зникли. Згідно з текстом, кожне з цих ребер повинно бути або білим, або чорним.

Наомі помітила, що біля кожної вершини вказано два цілі числа. Вона припустила, що перше число — це кількість білих ребер, інцидентних до вершини, а друге — кількість чорних ребер, інцидентних до вершини.

Наомі відновила всі зображення. Чи зможете ви зробити те ж саме?

Вхідні дані

Перша строка містить ціле число — кількість зображень, які потрібно відновити (1 \le t \le 3 \cdot 10^5).

Наступні строки описують зображень. Кожен опис починається зі строки, що містить ціле число — кількість вершин у дереві (1 \le n \le 3 \cdot 10^5).

-та з наступних строк опису зображення містить два цілі числа w_i та b_i — два цілі числа, написані біля -ї вершини дерева: кількість білих та чорних ребер, інцидентних до -ї вершини (0 \le w_i, b_i \le n - 1).

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

Вихідні дані

Виведіть блоків виходу, -й з яких повинен містити інформацію про відновлення зображення .

У першій строці кожного блоку виведіть "No", якщо немає способу, і "Yes", якщо є хоча б один спосіб відновити зображення. Якщо є спосіб відновити зображення дерева, виведіть додатково n - 1 строк, кожна з яких містить два цілі числа та літеру 'W' для білого або 'B' для чорного: v_i, u_i та c_i, що визначають ребро між вершинами v_i та u_i кольору c_i (1 \le v_i, u_i \le n; c_i є або 'W', або 'B').

Якщо є кілька способів відновити зображення, ви можете вивести будь-який з них. Ребра дерева можуть бути виведені в будь-якому порядку.

Приклади

Приклад 1

Loading
Loading