Lista de probleme 2

Filtrare

#4565 Amazon

România este formată din N 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ă N−1 drumuri bidirecționale care conectează orașele.

Fiecare drum are și un cost asociat. Echipa lui Jeffrey a creat o lista de M perechi de orașe între care se va circula foarte des pentru livrarea coletelor. Definim costul unei perechi de orașe (x, y) ca fiind suma costurilor drumurilor din traseul de la orașul x la orașul y. De asemenea, definim costul total ca fiind suma tuturor costurilor celor M 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 1. Din motive de “frugality”, această operație poate fi aplicată de cel mult K ori, unde K este un număr natural.

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

Concursul Interjudețean de Matematică și Informatică Grigore Moisil, 2023

RAU-Gigel și Vlad sunt prieteni buni și le place tot timpul să se provoace unul pe altul. De data aceasta, RAU-Gigel a inventat o problemă interesantă de matematică.

Acesta are un arbore secret cu N noduri (numerotate de la 1 la N), în care fiecare nod are asociată o valoare (pe lângă numărul său de ordine din arbore), care este un număr natural și ii spune lui Vlad informații despre unele drumuri din acest arbore. O informație are forma x, y, val și reprezintă faptul că lanțul din arbore de la nodul x la nodul y are cel mai mare divizor comun al valorilor asociate nodurilor acestuia egal cu val, unde val este un număr natural nenul.

Vlad știe că RAU-Gigel minte câteodată și s-ar putea ca unele dintre restricțiile date să fie eronate, astfel că vrea să afle întâi folosind informațiile ce le are la îndemână dacă ar putea exista un arbore care să respecte toate restricțiile date de prietenul său.

Pentru că știe ce programator iscusit ești, Vlad ți-ar fi foarte recunoscător daca l-ai putea ajuta cu această problemă prin a scrie un program care să o rezolve cât mai eficient.