Олимпиадный тренинг

Задача . E. Автомобили


На координатной оси \(OX\) стоят \(n\) автомобилей. Каждая машина изначально находится в целочисленной точке, и никакие две машины не находятся в одной и той же точке. Кроме того, каждая машина ориентирована либо влево, либо вправо, и в любой момент они могут двигаться с любой постоянной положительной скоростью в этом направлении.

Более формально мы можем описать \(i\)-й автомобиль буквой и целым числом: его ориентацию \(ori_i\) и его местоположение \(x_i\). Если \(ori_i = L\), то \(x_i\) убывает со временем. Точно так же, если \(ori_i = R\), то \(x_i\) увеличивается со временем.

Мы называем две машины нерелевантными, если они никогда не оказываются в одной и той же точке независимо от их скорости. Другими словами, они не будут иметь одну и ту же координату в любой момент.

Мы называем два автомобиля предназначенными, если они когда-нибудь окажутся в одной и той же точке независимо от их скорости.

К сожалению, мы потеряли всю информацию о наших машинах, но мы помним \(m\) отношений между ними. Существует два типа отношений:

\(1\) \(i\) \(j\)\(i\)-й автомобиль и \(j\)-й автомобиль нерелевантные.

\(2\) \(i\) \(j\)\(i\)-й автомобиль и \(j\)-й автомобиль предназначенные.

Восстановите ориентации и местоположения автомобилей, удовлетворяющих отношениям, или сообщите, что это невозможно. Если решений несколько, можно вывести любое.

Обратите внимание на то, что если два автомобиля окажутся в одной точке, то они продолжат свое движение.

Входные данные

Первая строка содержит два целых числа: \(n\) и \(m\) \((2 \leq n \leq 2 \cdot 10^5; 1 \leq m \leq min(2 \cdot 10^5, \frac{n(n-1)}{2})\) — количество автомобилей и количество отношений соответственно.

Каждая из следующих \(m\) строк содержит три целых числа: \(type\), \(i\) и \(j\) \((1 \leq type \leq 2; 1 \leq i,j \leq n; i≠j)\).

Если \(type\) = \(1\), то \(i\)-й автомобиль и \(j\)-й автомобиль являются нерелевантными. В противном случае \(i\)-й автомобиль и \(j\)-й автомобиль являются предназначенными.

Гарантируется, что для каждой пары автомобилей существует не более \(1\)-го отношения между ними.

Выходные данные

В первой строке выведите «YES», если можно восстановить ориентации и положения автомобилей, удовлетворяющих отношениям, и «NO» в противном случае.

Если ответ «YES», выведите \(n\) строк, каждая из которых содержит символ и целое число: \(ori_i\) и \(x_i\) \((ori_i \in \{L, R\}; -10^9 \leq x_i \leq 10^9)\) — представляет информацию о \(i\)-м автомобиле.

Если ориентация налево, то \(ori_i\) = \(L\). В противном случае \(ori_i\) = \(R\).

\(x_i\) — координата, где находится \(i\)-й автомобиль. Обратите внимание, что все \(x_i\) должны быть различными.

Мы можем доказать, что если существует решение, то должно быть и решение, удовлетворяющее ограничениям на \(x_i\).


Примеры
Входные данныеВыходные данные
1 4 4
1 1 2
1 2 3
2 3 4
2 4 1
YES
R 0
L -3
R 5
L 6
2 3 3
1 1 2
1 2 3
1 1 3
NO

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя