Amazon

Time limit: 1s
Memory limit: 256MB
Input: amazon.in
Output: amazon.out

"If you think it’s simple, then you have misunderstood the problem" (Bjarne Stroustrup)

Jeffrey dorește să își extindă magazinul său online și în România. Pentru a asigura obsesia pentru satisfacția clienților, el stabilește o strategie de livrare a comenzilor eficientă, automată, și într-un timp cât mai scurt.

România este formată din NN orașe conectate între ele, existând un traseu unic între oricare două orașe. Un traseu este o secvență de drumuri care conectează două orașe, astfel încât niciun drum nu se repetă. În total, există N1N - 1 drumuri bidirecționale care conectează orașele.

Fiecare drum are și un cost asociat. Echipa lui Jeffrey a creat o listă de MM perechi de orașe între care se va circula foarte des pentru livrarea coletelor. Definim costul unei perechi de orașe (x,y)(x, y) ca fiind suma costurilor drumurilor din traseul de la orașul xx la orașul yy. De asemenea, definim costul total ca fiind suma tuturor costurilor celor MM perechi de orașe date.

Jeffrey poate să aplice următorul tip de operație: selectează un drum cu un cost strict pozitiv și îi scade costul cu 11. Din motive de "frugality", această operație poate fi aplicată de cel mult KK ori, unde KK este un număr natural.

Cerință

Se cere să găsiți costul total minim ce poate fi obținut, după aplicarea de cel mult KK ori a operației menționate mai sus.

Date de intrare

Pe prima linie a fișierului de intrare se află un număr natural NN, reprezentând numărul de orașe.

Pe următoarele N1N - 1 linii se află câte 33 numere xx, yy și ww, reprezentând faptul că există un drum bidirecțional între orașele xx și yy, cu costul egal cu ww. Orașele sunt numerotate de la 00 la N1N - 1.

Pe următoarea linie se află numerele MM și KK, reprezentând numărul de perechi de orașe, respectiv numărul de operații ce pot fi aplicate, urmând apoi MM linii care conțin fiecare câte două numere xx și yy reprezentând cele MM perechi de orașe.

Date de ieșire

Pe prima linie a fișierului de ieșire se va afla un singur număr, reprezentând costul total minim ce va putea fi obținut, modulo 666 013666 \ 013.

Restricții și precizări

  • 1N200 0001 \leq N \leq 200 \ 000
  • 0K200 0000 \leq K \leq 200 \ 000
  • 1MN1 \leq M \leq N
  • 1w201 \leq w \leq 20
  • 0x,y<N0 \leq x, y < N, xyx \neq y
  • Operația de scădere a costului unui drum poate fi aplicată de mai multe ori pentru același drum, atât timp cât costul drumului nu devine un număr negativ.
  • Pentru teste în valoare de 2020 de puncte se garantează că 1N,K1 0001 \leq N,K \leq 1 \ 000.
  • Pentru alte teste în valoare de 3030 de puncte se garantează că K=0K = 0.
  • Pentru restul testelor în valoare de 5050 de puncte nu există restricții suplimentare.

Exemplu

amazon.in

5
1 0 4
0 2 3
1 3 4
1 4 4
3 5
2 4
1 4
3 4

amazon.out

10

Explicație

Putem alege să aplicăm operația de scădere a costului drumului pe drumul de la orașul 11 la orașul 44 de 44 ori. Astfel, costul drumului va deveni 00.

Mai putem aplica încă o dată operația pentru drumul de la orașul 11 la 33, micșorând costul acestuia la 33. Costul traseului între orașele 22 și 44 va fi suma costurilor drumurilor 202 \rightarrow 0, 010 \rightarrow 1 și 141 \rightarrow 4, adică 3+4+0=73 + 4 + 0 = 7. Costul traseului între orașele 11 și 44 va fi costul drumului 141 \rightarrow 4, adică 00. Costul traseului între orașele 33 și 44 va fi suma costurilor drumurilor 313 \rightarrow 1 și 141 \rightarrow 4, adică 3+0=33 + 0 = 3.

Astfel, costul total este 7+0+3=107 + 0 + 3 = 10.

Problem info

ID: 2131

Editor: Raul_A

Author:

Source: Concursul Grigore Moisil 2023 XI-XII

Tags:

Concursul Grigore Moisil 2023 XI-XII

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