Când toate bunoacele care mă văd vor să fie împreuna cu mine așa că îmi introduc prietenul scund într-un mod nonchalant având în căști PetrecereUșaUrmătoare (le-a speriat)
Cerință
Vi se dau numerele naturale , și o matrice de formată din numere naturale mai mici sau egale cu . Definim o mișcare cu sensul astfel:
Dacă =>
, ne vom muta la dreapta cu o casuță
Dacă =<
, ne vom muta in jos cu o casuță
Vi se dau întrebări de forma:
unde acestea reprezintă lungimea șirului , un șir de mișcări, respectiv un număr întreg.
Pentru toate cele întrebări, să se afișeze DA
dacă exista o permutare a șirului de mișcări, începand din căsuța , astfel încât suma elementelor prin care am trecut să fie egală cu , altfel să se afișeze NU
.
Date de intrare
Pe prima linie se vor găsi trei numere naturale , și . Pe următoarele linii se vor afla câte valori, care reprezintă matricea. Pe următoarele linii se va afla , un șir de mutări și , care reprezintă cele întrebări.
Dacă folosiți citire cu std::cin
, vă recomandăm să adăugați aceste linii la începutul programului:
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
Date de ieșire
Pe urmatoarele linii se vor afla raspunsurile la întrebări.
Restricții și precizări
- ;
- ;
- ;
- ;
- ;
- Se garanteaza ca în șirurile , va apărea de maxim ori și va apărea de maxim ori;
# | Punctaj | Restricții |
---|---|---|
1 | 7 | |
2 | 28 | |
3 | 46 | |
4 | 19 | Fără alte restricții |
Exemplul 1
stdin
3 4 6
7 8 9 1
1 15 3 4
5 4 3 6
2 >> 24
2 >> 23
2 <> 30
5 ><>>< 37
3 ><> 26
3 ><> 500
stdout
DA
NU
DA
DA
DA
NU
Explicație
Pentru primele două întrebări, oricum am permuta șirul de mutări, mereu vom parcurge matricea astfel: , iar suma va fi .
Pentru a treia întrebare, dacă permutăm șirul de mutări ca fiind ><
, vom trece prin căsuțele matricei în ordinea aceasta: , iar suma va fi .