Šandyna je šikovná bioinformatička a vo svojej práci často manipuluje RNA a DNA rôznych vírusov. Naposledy potrebovala izolovať sekvenciu istého Krutého Sveta-Paralyzujúceho vírusu. Žiaľ, pri pokuse sa jej to nepodarilo, miesto toho len izolovala n úsekov aminokyselín a nie presnú sekvenciu ktorú by potrebovala. Ale ešte nič nie je stratené! V laboratóriu biologickými čarami vie Šandyna spájať sekvencie, aby dostala RNA vírusu. Ale to nie je len tak, spájať genetické sekvencie. Niektoré sa pripájajú ťažšie než iné. Potrebuje preto zistiť ako ich čo najľahšie spojiť do chceného RNA. Pomôžte jej!
Úloha
Šandyna má reťazec T, RNA vírusu ktorý chce zostaviť. Tiež už má n úsekov genetického kódu. Genetický kód si vieme zapísať ako reťazec malých písmen anglickej abecedy. Šandyna má tiež vzorky nukleidov reprezentovaných každým písmenom. Šandyna začína s prázdnou sekvenciou a tú výslednú by chcela zostrojiť pomocou týchto štyroch postupov:
Na začiatok aktálnej sekvencie prilepí jeden nukleid (písmenko). Prilepenie nukleidu c má cenu clc⋅|S| .
Na koniec aktuálnej sekvencie prilepí jeden nukleid (písmenko). Prilepenie nukleidu c má cenu crc⋅|S|
Na začiatok aktuálnej sekvencie prilepí genetickú sekvenciu číslo i (1≤i≤n). Prilepenie sekvencie má cenu kli⋅|S|
Na koniec aktuálnej sekvencie prilepí genetickú sekvenciu číslo i (1≤i≤n). Prilepenie sekvencie má cenu kri⋅|S|
Kde |S| je dĺžka aktuálnej sekvecie. Všimnime si, že pridať prvý nukleid/sekvenciu je vždy zadarmo.
Šandyna nevie vytvárať paralelne viac sekvencíí a potom ich prilepiť k sebe. Ako najlacnejšie môže vytvoriť správny genetický kód?
Formát vstupu
Na prvom riadku je číslo n - počet predom izolovaných sekvencií.
Na ďalších n riadkoch sú tieto sekvencie, p1 až pn, reprezentované ako reťazce malej anglickej abecedy.
Na ďalšom riadku je 26 medzerami oddelených cien pripojenia jediného nukleidu na začiatok: cla, až clz.
Na ďalšom riadku je 26 medzerami oddelených cien pripojenia jediného nukleidu na koniec: cra, až crz.
Na ďalšom riadku je n medzerami oddelených cien pripojenia genetických sekvencií na začiatok: kl1, až kln
Na ďalšom riadku je n medzerami oddelených cien pripojenia genetických sekvencií na koniec: kr1, až krn
A na poslednom riadku je reťazec T - genetická sekvencia ktorú Šandyna chce vytvoriť.
Formát výstupu
Vypíšte jediný riadok: najmenšiu cenu za ktorú vie Šandyna sekvenciu vytvoriť.
Hodnotenie
Vo všetkých vstupoch platia nasledovné limity:
1≤|T|≤1000
0≤n≤100000
Všetky počiatočne izolované genetické sekvencie pi majú dĺžku najviac 100.
Všetky ceny sú medzi 1 a 109
Všetky reťazce obsahujú iba malé písmená anglickej abecedy
Sú 4 testovacie sady. V nich navyše platia nasledovné obmedzenia:
Sada | 1 | 2 | 3 | 4 |
---|---|---|---|---|
n≤ | 0 | 10 | 10000 | 100000 |
V sade 2 navyše platí |pi|≤10.
Príklady
Input:
0
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
10 1 1 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
abaca
Output:
15
Najlepšie je budovať sekvenciu odzadu. Cena je tak 0+3⋅1+1⋅2+2⋅3+1⋅4=15
Input:
3
aba
ba
xy
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
3 2 1 3 5 9 10 11 11 9 9 8 7 6 5 1 33 22 11 90 1 1 2 3 5 8
1 2 3
1 1 1
abacaba
Output:
5
Šandyna by mala začať s nukleidom c. Potom za cenu 1⋅1=1 by mala pripojiť sekvenciu ‘aba’ na začiatok a napokon tú istú sekvenciu aj na koniec (za cenu 1⋅4=4, keďže sekvencia po druhom kroku bola ‘abac’. Celková cena je teda 5.
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.