Căluţi
|
100 puncte
|
Fişier sursă: caluti.c, caluti.cpp sau caluti.pas
|
Fermierul Chernel
are o mare problema. Trebuie sa transporte N caluti de la pasune la hambar.
Pentru aceasta el foloseste un camion in care incap maxim K caluti pentru un transport.
Timpul in care Chernel efectueaza un transport de la pasune la hambar si
se intoarce la pasune cu camionul gol este P.
Insa calutii zburdalnici
sunt greu de convins sa intre in camion inainte de o anumita ora. Pentru
fiecare calut i se cunoaste timpul ti dupa care acesta va putea fi
bagat in camion. Chernel doreste sa isi termine munca cat mai repede,
altfel spus ar vrea sa minimizeze timpul dupa care toti calutii vor fi fost
transportati la hambar iar el ajuns cu camionul inapoi la pasune.
Cerinţă
Ajutati-l pe Chernel sa isi indeplineasca dificila
sarcina de a transporta toti calutii in timp minim.
Date de intrare
Prima
linie a fisierului de intrare caluti.in contine un numar natural T, reprezentand numarul de teste.
Pe urmatoarele linii sunt descrise cele T teste, fiecare dintre ele avand
formatul urmator: pe prima linie se afla trei numere intregi N, K si P, iar pe urmatoarele N linii se afla timpii ti ai calutilor, sortati crescator.
Date de ieşire
Fisierul de iesire caluti.out va contine T linii. Pe linia i se va afla un singur numar
intreg, reprezentand timpul minim de transport al calutilor corespunzator
testului i din fisierul de intrare
Restricţii şi
precizări
� 1 ≤ T ≤ 10
� 1 ≤ K ≤ N ≤
100.000
� 1 ≤ P ≤
10.000.000.000
� 1 ≤ ti ≤
10.000.000.000
�
Pentru
40% din teste N ≤ 500
Exemplu
caluti.in
|
caluti.out
|
Explicaţii
|
1
3 2 15
10
20
30
|
45
|
Chernel incarca primul calut la timpul 10, il
transporta la hambar si ajunge inapoi� la
pasune la timpul 25.
Asteapta pana la momentul 30, apoi incarca al doilea si
al treilea calut, pe care ii transporta la hambar, intorcandu-se apoi la
pasune la timpul 45.
|