Tassadar a supravieţuit cursului de Kultură şi Civilizaţie, dar a rămas profund afectat de această experienţă şi este convins că, de fapt, cursurile erau incoerente.
Pentru a verifica acest lucru, el a întocmit un dicţionar care cuprinde toate cuvintele incoerente pe care le-a întâlnit de-a lungul vieţii. Gradul de incoerenţă al unui cuvânt din dicţionar este egal cu lungimea cuvântului. Cursul de Kultură şi Civilizaţie poate fi reprezentat printr-un şir de litere mici ale alfabetului latin.
Tassadar vrea să insereze spaţii în curs şi să delimiteze, astfel, cuvintele care apar în acesta. El doreşte să facă acest lucru astfel încât suma gradelor de incoerenţă ale cuvintelor din curs să fie maximă.
Ajutaţi-l pe Tassadar să afle cât de incoerent este cursul de Kultură şi Civilizaţie!
Date de intrare
Fişierul de intrare kc.in
conţine pe prima linie numerele şi , reprezentând lungimea cursului, respectiv numărul de cuvinte din dicţionar. Pe următoarea linie se află un şir de litere, reprezentând cursul de Kultură şi Civilizaţie. Pe următoarele linii se vor afla cuvintele din dicţionar, câte unul pe linie.
Date de ieșire
Fişierul de ieşire kc.out
va conţine pe prima linie suma maximă a gradelor de incoerenţă care se poate obţine prin delimitarea cuvintelor din curs cu spaţii.
Restricții și precizări
- , unde este suma lungimilor cuvintelor din dicţionar
- Un cuvânt este o subsecvenţă maximală de litere mici ale alfabetului latin şi este delimitat la stânga şi la dreapta fie de un spaţiu, fie de începutul cursului, fie de sfârşitul cursului
- Dacă un cuvânt din curs nu apare în dicţionar, acesta are gradul de incoerenţă
- Pentru teste în valoare de puncte, şi
- Pentru teste în valoare de alte de puncte,
Exemplu
kc.in
3 3
abc
a
c
abc
kc.out
3
Explicație
Există patru moduri în care putem delimita cuvintele din curs cu spaţii: abc
(conţine un singur cuvânt cu gradul de incoerenţă ), ab c
(conţine un cuvânt cu gradul de incoerenţă şi unul cu gradul de incoerenţă ), a bc
(conţine un cuvânt cu gradul de incoerenţă şi unul cu gradul de incoerenţă ) şi a b c
(conţine două cuvinte cu gradul de incoerenţă şi unul cu gradul de incoerenţă ). Dintre toate aceste modalităţi, este optim să nu inserăm niciun spaţiu în curs, pentru a obţine suma gradelor de incoerenţă maximă, aceasta fiind egală cu .