Sunteți pe pagina 1din 1

Centrul de Pregătire pentru Performanță în Informatică

Concurs de antrenament
1-3 decembrie 2022

Asociere

Avem un număr m și n intervale deschise care au extremități cuprinse între 1 și m. Fiecărui


număr de la 1 la m i se cunoaște costul. Dacă selectăm o mulțime de numere cuprinse între 1 și
m așa încât fiecare interval dintre cele n să includă cel puțin un număr din mulțime, obținem o
asociere. Costul unei asocieri este egal cu suma costurilor numerelor din mulțimea
corespunzătoare. Noi trebuie să determinăm cel mai mic cost posibil pentru o asociere.

Date de intrare
Pe prima linie a fișierului asociere.in se află numerele n și m. Pe linia a doua cele m costuri,
în ordine, pentru fiecare număr de la 1 la m. Pe fiecare dintre următoarele n linii se află câte
două numere, capetele intervalelor.

Date de ieșire
În fișierul asociere.out se scrie un singur număr.

Restricții
1 <= n <= 60000
1 <= m <= 1000000
Costurile sunt numere naturale cuprinse între 0 și 1024 (inclusiv)
Pentru 40 de puncte avem n <= 1000 și m <= 10000

Exemplu

asociere.in asociere.out Explicație

4 10 5 O asociere de cost minim este


1 3 6 4 5 1 0 1 3 formată din elementele 1, 4 și
2 7 (care au costurile 1, 4 și 0).
1 3
3 5
6 9
4 4

S-ar putea să vă placă și