nogcd

Time limit: 0.35s Memory limit: 256MB Input: nogcd.in Output: nogcd.out

Boss, dacă N e 30 000, clar încerci N2N^2 optimizat! (Friedrich Nietzsche)

Se dă un graf conex fără bucle cu N noduri și M muchii. Să se eticheteze fiecare muchie cu câte un număr de la 1 la M astfel încât să nu existe două muchii cu aceeași etichetă și pentru fiecare nod cu grad mai mare decât 1, cel mai mare divizor comun al etichetelor muchiilor incidente să fie 1.

Date de intrare

Fișierul nogcd.in conține pe prima linie numerele naturale N și M separate printr-un spațiu, iar pe următoarele M linii se află câte două numere x și y separate prin câte un spațiu, între 1 și N, care înseamnă că există muchie între nodurile x și y.

Date de ieșire

Fișierul nogcd.out va conține M linii, pe fiecare linie conținând trei numere naturale x y v separate prin câte un spațiu, reprezentând extremitățile muchiei (x, y) și valoarea etichetei acestei muchii.

Restricții și precizări

  • 1 ≤ N ≤ 100 000
  • 1 ≤ M ≤ 220 000

Exemplu

nogcd.in

5 6
1 2
2 3
1 3
4 1
3 4
3 5

nogcd.out

1 2 2
1 4 1
1 3 3
3 2 5
3 4 4
3 5 6

Explicație

Graful are 5 noduri și 6 muchii.
Pentru nodul 1 etichetele sunt 2, 1 și 3; cmmdc(2,1,3)=1.
Pentru nodul 2 etichetele sunt 2 și 5; cmmdc(2,5)=1.
Pentru nodul 3 etichetele sunt 3, 4, 5 și 6; cmmdc(3,4,5,6)=1.
Pentru nodul 4 etichetele sunt 1 și 4; cmmdc(1,4)=1.
Nodul 5 are gradul 1, deci nu se calculează cmmdc .

Log in or sign up to be able to send submissions!