weightdif

Time limit: 3s Memory limit: 128MB Input: weightdif.in Output: weightdif.out

Se dă un graf conex neorientat GG cu NN noduri și MM muchii, fiecare muchie având asociat un cost.
Un arbore parțial pentru GG este un subgraf cu structura de arbore, care cuprinde toate nodurile și o parte din muchii.

Cerință

Se cere găsirea unui arbore parțial al grafului GG, astfel încât diferența dintre cel mai mare și cel mai mic cost al unei muchii să fie minimă.

Date de intrare

Fisierul de intrare va conține pe prima linie numerele NN și MM, separate printr-un spațiu. Pe urmatoarele MM linii se vor găsi muchiile grafului sub forma X Y C, cu semnificația că există muchie neorientată între XX și YY de cost CC.

Date de ieșire

Fisierul de ieșire va contine pe prima linie diferența minimă dintre cel mai mare și cel mai mic cost al muchiilor unui arbore parțial din GG.

Restricții și precizări

  • 2N30 0002 \leq N \leq 30 \ 000;
  • 1M100 0001 \leq M \leq 100 \ 000;
  • 1X<YN1 \leq X < Y \leq N;
  • 1C1 000 000 0001 \leq C \leq 1 \ 000 \ 000 \ 000;
  • între oricare două noduri există cel mult o muchie;
  • Pentru 2020 de puncte, 1M201 \leq M \leq 20;
  • Pentru 2020 de puncte, 2N1002 \leq N \leq 100 și 1M1001 \leq M \leq 100;
  • Pentru 2020 de puncte, 2N10002 \leq N \leq 1000 și 1M10 0001 \leq M \leq 10 \ 000;
  • Pentru 2020 de puncte, M(MN)(MN)107M\cdot(M-N)\cdot (M-N) \leq 10^{7};
  • Pentru 2020 de puncte, nu există restricții suplimentare.

Exemplu

weightdif.in

6 10
1 2 2
2 3 1
3 4 2
4 5 1
5 6 2
1 6 1
1 4 20
2 5 5
2 6 6
4 6 7

weightdif.out

1

Explicație

Graful din exemplu:

Un arbore parțial cu diferența minimă dintre costul maxim și cel minim de pe muchii:

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