Între doi stâlpi verticali aflaţi pe malurile unui râu (de o parte şi de alta a râului) se află legate două cabluri bine întinse, paralele cu solul, având distanţa dintre ele egală cu centimetri.
Cablurile sunt folosite pentru traversarea râului în caz de inundaţii. Stâlpii sunt notaţi cu şi , iar cablurile cu şi ca în figura de mai jos. Pe cabluri există desenate câte puncte colorate cu diverse culori, culorile fiind codificate prin numerele . Poziţia punctelor pe fiecare cablu este dată prin distanţa faţă de stâlpul pentru fiecare punct. Punctele de pe fiecare cablu sunt numerotate cu . Pe fiecare cablu există cel puţin un punct colorat cu fiecare culoare. Pentru a uşura deplasarea pe cablu, primarul hotărăşte să lege cu sârmă perechi de puncte de aceeaşi culoare, unul de pe primul cablu, iar celălalt de pe al doilea cablu, astfel încât:
- pentru fiecare culoare să existe o singură pereche de puncte între care să fie legătură
- lungimea totală de sârmă folosită să fie minimă
Cerință
Să se scrie un program care determină lungimea minimă a sârmei ce va fi folosită pentru rezolvarea problemei şi o mulţime de perechi de puncte ce urmează a fi legate pentru a obţine acest minim.
Date de intrare
Fişierul de intrare stalpi.in
va conţine:
- pe prima linie numerele naturale nenule separate printr-un spaţiu
- pe a doua linie perechi de numere, formate din distanţa faţă de stâlpul la fiecare punct şi culoarea asociată punctului, separate prin câte un spaţiu, aflate pe cablul
- pe a treia linie perechi de numere, formate din distanţa faţă de stâlpul la fiecare punct şi culoarea asociată punctului, separate prin câte un spaţiu, aflate pe cablul
Date de ieșire
Fişierul de ieşire stalpi.out
va conţine pe prima linie valoarea minimă cerută, iar pe următoarele linii numerele de ordine ale punctelor ce vor fi legate cu sârmă, separate printr-un spaţiu, întâi cele de pe cablu , urmate de cele de pe cablu , în ordinea crescătoare a culorilor.
Restricții și precizări
- Distanţa dintre cei doi stâlpi şi este
- Distanţele de la stâlpul la puncte sunt numere naturale
- Distanţa minimă va fi afişată trunchiată la primele zecimale
- Toate punctele de pe un cablu sunt distincte
- Se acordă % din punctaj pentru determinarea corectă a minimului din cerinţă
Exemplu
stalpi.in
3 100
50 1 200 2 100 1
250 2 100 1 300 2
stalpi.out
211.803
3 2
2 1
Explicație
Sunt perechi de puncte, culori, codificate cu şi . Necesarul minim de sârmă este .
Se leagă punctul de punctul (ambele au culoarea ). Se leagă punctul de punctul (ambele au culoarea ).