Costel deține un șir de pietricele prețioase numerotate de la la . Deoarece Costel este un om superstițios, el colecționează pietricele doar de anumite tipuri. Tipul unei pietricele este reprezentat de o literă mică a alfabetului englez, iar fiecare tip în parte are o anumită valoare.
Într-o zi, Costel s-a decis să distribuie șirul de pietricele pe rafturi astfel încât fiecare raft să conțină câte o subsecvență nevidă de pietricele din șirul original, iar la final, fiecare pietricică să se afle pe exact un raft. Definim valoarea unui raft ca fiind suma valorilor pietricelelor de pe acel raft.
Cerintă
Fiind dat șirul de pietricele, să se distribuie pietricelele din șir în subsecvențe disjuncte astfel încât:
- Cea mai mare valoare a unui raft să fie maximă.
- Cea mai mică valoare a unui raft să fie maximă.
Date de intrare
Fișierul de intrare pietricele.in
va conține pe prima linie numerele naturale , și separate prin câte un spațiu, unde reprezintă cerința care trebuie rezolvată, reprezintă numărul de pietricele din șir, iar reprezintă numărul de rafturi pe care vor fi distribuite pietricelele. Cea de-a doua linie a fișierul va conține litere mici ale alfabetului englez, reprezentând tipurile pietricelelor din șirul deținut de Costel. Cea de-a treia linie conține de numere separate prin câte un spațiu, reprezentând valoarea fiecărui tip de pietricică de la a
la z
.
Date de ieșire
Fișierul de ieșire pietricele.out
conține răspunsul pentru cerința dată.
Restricții
- ≤ ≤ ≤
- valorile tipurilor de pietricele sunt cuprinse în intervalul [, ].
- subsecvenţă a șirului este o succesiune de pietricele aflate pe poziții consecutive: .
- două subsecvențe sunt disjuncte dacă nu au nicio pietricică în comun.
- se recomandă folosirea tipului de date
long long
# | Punctaj | Restricții |
---|---|---|
1 | 10 | , pentru fiecare pietricică din șir |
2 | 20 | , fără restricții suplimentare |
3 | 10 | , și |
4 | 10 | , |
5 | 10 | și valorile tuturor tipurilor de pietricele sunt egale. |
6 | 40 | fără restricții suplimentare |
Exemple
pietricele.in
1 12 3
abbaacabcbaa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
pietricele.out
18
pietricele.in
2 12 3
aabaacabcbaa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
pietricele.out
6
Explicații
Cea mai mare valoare pe care o poate avea un raft este și se obține prin următoarea distribuire pe rafturi: a
, bbaacabcba
, a
, fiecare cu valorile , , respectiv .
Șirul se distribuie pe rafturi astfel: aabaa
, cab
, cbaa
, fiecare cu valorile , respectiv . Astfel, este cea mai mică valoare a unui raft, care pentru acest exemplu este maximul posibil.