trenbus

Time limit: 1.25s Memory limit: 512MB Input: trenbus.in Output: trenbus.out

Se dau doi arbori neorientaţi cu NN noduri etichetate de la 11 la NN şi costuri pe muchii. Primul arbore se numeşte TREN, iar al doilea se numeşte BUS. Pentru două noduri AA şi BB şi un arbore TT definim d(A,B,T)d(A, B, T) = valoarea maximă a unei muchii de pe drumul elementar dintre nodurile AA şi BB în arborele TT.
Suntem interesaţi de perechile de valori XX şi YY cu proprietatea că d(X,Y,TREN)+d(X,Y,BUS)d(X,Y,TREN)+d(X,Y,BUS) este minim posibil.
În funcţie de valoarea unui parametru CC din datele de intrare, trebuie să afişaţi suma minimă cerută, respectiv numărul de perechi de valori (X,Y)(X,Y) care se realizează această valoare minimă.

Date de intrare

Pe primul rând al fişierului de intrare trenbus.in se găsesc numerele naturale CC şi NN.
Pe următoarele N1N-1 rânduri se găsesc muchiile neorientate care descriu arborele TREN, iar pe următoarele N1N-1 rânduri se găsesc muchiile neorientate care descriu arborele BUS. Fiecare muchie este descrisă de 33 numere naturale a b ca \ b \ c, reprezentând capetele muchiei respectiv costul.

Date de ieșire

Pe singurul rând al fişierului de ieşire trenbus.out se vor tipări:

  • dacă C=1C=1, doar suma cerută,
  • dacă C=2C=2, suma cerută şi numărul de perechi separate printr-un spaţiu.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 1C21 \leq C \leq 2
  • 1c1 000 000 0001 \leq c \leq 1 \ 000 \ 000 \ 000
  • Pentru teste în valoare de 55 puncte C=1C=1 si N100N \leq 100
  • Pentru alte teste în valoare de 2525 puncte C=1C=1 si N50 000N \leq 50 \ 000
  • Pentru alte teste în valoare de 2525 puncte C=1C=1 si N100 000N \leq 100 \ 000
  • Pentru alte teste în valoare de 2020 puncte C=2C=2 si N50 000N \leq 50 \ 000
  • Pentru alte teste în valoare de 2525 puncte C=2C=2 si N100 000N \leq 100 \ 000

Exemplul 1

trenbus.in

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

trenbus.out

7

Explicație

C=1C=1, se afişează doar suma minimă. Generată de x=1x = 1, y=2y = 2 sau respectiv x=1x = 1, y=3y = 3.

Exemplul 2

trenbus.in

2 5
1 2 2
2 5 3
2 4 7
2 3 2
1 2 4
2 3 4
3 4 3
4 5 2

trenbus.out

6 4

Explicație

C=2C=2; Suma minimă este 66, iar numărul perechilor de noduri ce generează această sumă minimă este 44.

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