F - Jamne

Time limit: 1s Memory limit: 64MB Input: Output:

Cerință

Vrei să formezi un cuvânt și nu ai destule litere din cele care îți trebuie, și ai altele nefolositoare. Din fericire vrăjitorul Jaxson are MM oferte pentru tine: "Dă-mi litera L1L_1 și XX galbeni și îți voi da litera L2L_2". Vei face tot posibilul să îți construiești cuvântul. Poți să îl formezi? Dacă da, care este numărul minim de galbeni care trebuie plătiți?

Să se rezolve TT teste.

Date de intrare

Pe prima linie se află TT, urmând TT teste.
Pentru fiecare test se citesc în ordine: cuvântul pe care vrei să il formezi, stocul tău de litere, numărul de oferte și ofertele (Explicația este în exemplu).
Stocul tău de litere este un șir de 2626 de numere naturale. Primul număr este câte litere aa ai în stoc, al doilea câte litere bb ...

Date de ieșire

Se afișează TT rânduri, pe fiecare rând este fie "NU""NU", fie "DA""DA" urmat de costul minim care trebuie plătit.

Restricții și precizări

  • 1T51 \leq T \leq 5
  • Se garantează că perechile de litere citite sunt distincte.
  • Lungimea cuvântului citit în fiecare test este 106\leq 10^6.
  • Numărul de copii dintr-o literă inițial este 106\leq 10^6.
  • Costul pentru un schimb este strict pozitiv și 109\leq 10^9

Exemplul 1

stdin

5
aab
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
a b 1
aab
0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3
c d 1
d a 1
c b 1
abc
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
a b 1
abbcb
2 2 2 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2
a b 5
c b 4
abcd
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 1999
4
a b 6
d c 1
c b 2
a d 1

stdout

DA 1
DA 5
NU
DA 4
DA 7

Explicație

Pentru primul test avem la dispoziție literele a,a,a{'a', 'a', 'a'} și vrem să formăm cuvântul aabaab, pentru asta ne vom folosi de singura ofertă și vom da la schimb o literă aa pentru una bb la costul de 11, acuma avem literele a,a,b{'a','a','b'}, cu acestea putem forma cuvintele aabaab, abaaba, baabaa.

Pentru testul doi vom schimba un cc în bb după care 22 de cc pentru 22 de dd, după care 22 de dd pentru doi de aa.

Pentru testul 33 nu avem cum să ne formăm cuvântul doar din ofertele disponibile.

Pentru testul patru, putem fie să schimbăm un aa în bb, fie un cc în bb, vom schimba cc-ul deoarece are un cost mai mic schimbul acela. Se obervă că avem și 88 litere ff, dar aceasta nu ne ajută sau încurcă cu nimic.

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