Algolymp Educational | A world of strings

This was the problem page during the contest. Access the current page here.
Time limit: 0.6s Memory limit: 256MB Input: Output:

Cerință

Se dă un număr NN și un șir target, SS, cu NN caractere, conținând litere mici ale alfabetului latin.

Aveți la dispoziție KK șiruri, conținând litere mici ale alfabetului latin. Știind că puteți folosi orice prefix al acestor șiruri, de oricâte ori este nevoie, care este costul minim pentru a obține șirul inițial prin alipirea (fără suprapunere) prefixelor selectate? Costul se va incrementa cu 11 pentru fiecare utilizare a unui prefix.

Date de intrare

Pe prima linie se găsește un număr, NN.
Pe a doua linie se găsește șirul SS.
Pe a treia linie se găsește un număr, KK.
Fiecare dintre urmatoarele KK linii va conține unul dintre cele KK șiruri.

Date de ieșire

Pe prima linie se va găsi un singur număr întreg, costul minim pentru a forma șirul inițial. În cazul în care șirul inițial nu poate fi format, se va afișa 1-1.

Restricții și precizări

  • 1N1 000 0001 \leq N \leq 1 \ 000 \ 000;
  • 1K1 000 0001 \leq K \leq 1 \ 000 \ 000;
  • Suma lungimilor celor KK șiruri 1 000 000\leq 1 \ 000 \ 000;
  • Toate șirurile conțin doar litere mici ale alfabetului latin.

Exemplul 1

stdin

5
abcab
4
acde
bca
cab
aa

stdout

3

Explicație

Șirul abcab poate fi format folosind prefixele a, b, cab.

Exemplul 2

stdin

5
abcaz
4
acde
bca
cab
aa

stdout

-1

Explicație

Caracterul z nu se află în cele 44 șiruri pe care le putem folosi.

Exemplul 3

stdin

5
aaaaa
2
a
aa

stdout

3

Explicație

Șirul aaaaa poate fi format folosind prefixele a, aa, aa.

Log in or sign up to be able to send submissions!