Farse

Time limit: 2s Memory limit: 512MB Input: Output:

Miki și Andrei s-au reunit, cu ajutorul vostru, fix înainte de ziua de Halloween și vor să se distreze împreună în spiritul acestei sărbători. Andrei a găsit în castelul său o carte cu numere de telefon și acum îi propune lui Miki să facă farse la telefon și să sperie oamenii ce le răspund.
Lui Miki îi place ideea, dar propune să facă acest lucru într-un mod cât mai puțin costisitor.

Pe prima pagină a cărții se află informațiile celor NN centrale telefonice disponibile, adică prefixul pe care îl deservesc (un șir de cifre PiP_i) și costul pentru a suna la centrala respectivă (un număr natural CiC_i). O centrală poate fi folosită pentru a apela orice număr de telefon care începe cu prefixul acelei centrale.

După primele câteva încercări, Miki și Andrei descoperă un secret, anume că centralistele cu prefixe similare sunt prietene între ele și sunt dispuse să le facă legătura la o altă centrală, dar pentru un cost, evident. Prin urmare, dacă cei doi vor de la o anumită centrală ii să fie conectați la altă centrală jj, aceștia trebuie să plătească X×d(Pi,Pj)X \times d(P_i, P_j) unde d(Pi,Pj)=d(P_i, P_j) = plecând de la prefixul PiP_i, câte cifre trebuie șterse de la final ++ câte cifre trebuie apoi adăugate la final pentru a obține prefixul PjP_j. În alte cuvinte, de câte operații este nevoie într-un editor text care permite doar scriere la final și tasta backspace pentru a îl transforma pe PiP_i în PjP_j (pentru că asta este ce are de făcut centralista ca să redirecționeze apelul).

Cerință

Se dau prefixele și costul pentru fiecare operație. Miki și Andrei aleg aleator din carte QQ numere de telefon și vă roagă să le aflați costul minim de a face farse acestor numere.

Date de intrare

Pe prima linie a intrării se află NN, QQ și XX. Pe fiecare dintre următoarele NN linii se găsesc un șir de cifre PiP_i și un întreg pozitiv CiC_i, separate printr-un spațiu, reprezentând prefixul și costul celei de-a ii-a centrale.

Pe următoarele QQ linii se află câte un număr de telefon reprezentat de un șir de cifre.

Date de ieșire

Afișați QQ linii, fiecare conținând câte un număr întreg, al ii-lea dintre acestea reprezentând costul minim de apelare al ii-lealui număr de telefon din intrare, dacă numărul respectiv poate fi apelat, sau 1-1 în caz contrar.

Restricții și precizări

  • 1N,Q1 000 0001 \leq N, Q \leq 1\ 000\ 000
  • 1Sp1 000 0001 \leq S_p \leq 1\ 000\ 000, unde Sp=S_p = suma lungimilor prefixelor
  • 1St1 000 0001 \leq S_t \leq 1\ 000\ 000, unde St=S_t = suma lungimilor numerelor de telefon
  • 0Ci1090 \leq C_i \leq 10^9 pentru 1iN1 \leq i \leq N
  • 0X1090 \leq X \leq 10^9
  • Nu există niciun prefix mai lung decât un număr de telefon
# Punctaj Restricții
1 13 1Sp,St1 0001 \leq S_p, S_t \leq 1\ 000
2 21 1N1001 \leq N \leq 100, 1Sp10 0001 \leq S_p \leq 10\ 000, 1St100 0001 \leq S_t \leq 100\ 000
3 17 1Sp,St300 0001 \leq S_p, S_t \leq 300\ 000
4 12 Oricare ar fi două centrale ii, jj, fie PiP_i este prefix al PjP_j, fie invers
5 37 Fără restricții adiționale.

Exemplu

stdin

5 4 2
0722 5
0213 2
02 7
902 10
07 2
072212352423
021435246
9022432342
90358293022

stdout

2
6
10
-1

Explicație

Pentru numărul de telefon 072212352423072212352423 folosim prefixul 0707 de cost 22.

Pentru numărul de telefon 021435246021435246 plecăm de la prefixul 0707 pe care îl modificăm astfel:

  • Ștergem 77
  • Adăugăm 22 la final

și ajungem la prefixul 0202. Cele două operații costă în total 2×X=42 \times X = 4 și adunat cu costul prefixului avem un cost total de 66.

Pentru numărul de telefon 90224323429022432342 folosim prefixul 902902 de cost 1010.

Pentru numărul de telefon 9035829302290358293022 nu avem niciun prefix care să se potrivească.

Note asupra ediției

În caz că vă plictisiți încercând să rezolvați această problemă, am decis să vă includem și câteva exemple de farse jucate de Miki și Andrei. Nu sunt neapărat bune, dar sperăm că vă veți bucura de ele:

  • "Alo, vă merge frigiderul? ...Atunci fugiți după el să nu ajungă prea departe"
  • "Alo, avem nevoie de ajutor. Goblinul Ragnok s-a îndrăgostit de paladina noastră, dar nu are suficiente aura points pentru a o cuceri. Îi puteți dona câteva?"
  • "Buna ziua, un porc mistreț înflăcărat a fost văzut dând târcoale prin zona dvs. Baricadați bine ușile și ferestrele și păziți-vă fiicele."
  • "Nu ați aflat încă de cea mai nouă modă glamour leopard? Este foarte simplu, vă puteți programa chiar acum pentru un transplant de blană autentică!"
  • "Bună ziua, strângem daruri pentru nunta lui Dracula... Vă rugăm nu dați țepe!"
  • "[într-un growl agresiv] Don't lock the door on me...[apoi continuând pe un ton foarte politicos] pentru a continua programul nesolicitat de death metal, apăsați tasta 1"
  • "Bună ziua, vă contactăm pentru un sondaj de opinie în legătură cu produsele de panificație pe care le-ați primit recent. Le găsiți prea ațoase ați zis? Păi normal, doar sunt făcute din croșet!!!"

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