Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | stampile.in, stampile.out | Sursă | ad-hoc |
|---|---|---|---|
| Autor | CodeChef | Adăugată de |
|
| Timp de execuție pe test | 0.26 sec | Limită de memorie | 262144 KB |
| Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
Ștampile
Ion vrea să-și plătească taxele. Pentru aceasta, a pregătit un document cu N pagini, cu care s-a dus la ANAF. Pentru ca ANAF să-i accepte documentul, pe fiecare pagină i (1 ≤ i ≤ N) trebuie să apară cel puțin Si ștampile.
La ANAF sînt M ghișee. Printr-o vizită la ghișeul j (1 ≤ j ≤ M), Ion obține cîte o ștampilă pe paginile de la Aj la Bj inclusiv. Ion poate vizita de mai multe ori același ghișeu pentru a obține mai multe ștampile, dar există o limită. După Vj vizite, funcționarul de la ghișeul j se enervează și închide ghișeul.
Ajutați-l pe Ion să afle dacă își poate plăti taxele, iar în caz afirmativ, care este numărul minim necesar de vizite la ghișee.
Date de intrare
Fișierul de intrare stampile.in conține pe prima linie numerele N și M, separate prin spațiu. A doua linie conține numerele S1, S2, ..., SN, separate prin spații. Pe următoarele M linii apar cîte trei numere Aj, Bj, Vj, separate prin spații, reprezentînd parametrii celor M ghișee.
Date de ieșire
În fișierul de ieșire stampile.out tipăriți un singur număr. Dacă există un mod de a obține toate ștampilele, tipăriți numărul minim de vizite necesare. În caz contrar, tipăriți −1.
Restricții
- 1 ≤ N ≤ 200.000
- 1 ≤ M ≤ 200.000
- 1 ≤ Si ≤ 10.000 pentru 1 ≤ i ≤ N
- 1 ≤ Vj ≤ 10.000 pentru 1 ≤ j ≤ M
- 1 ≤ Aj ≤ Bj ≤ N pentru 1 ≤ j ≤ M
| puncte | restricții | |
|---|---|---|
| 1 | 25 | N, M ≤ 20; Vj = 1 pentru 1 ≤ j ≤ M |
| 2 | 25 | N, M ≤ 10.000 |
| 3 | 25 | N, M ≤ 100.000 |
| 4 | 25 | Fără restricții suplimentare. |
Notă: La concursul de selecție, punctajele pentru subtaskuri au fost 15, 23, 29 respectiv 33.
Exemplu
| stampile.in | stampile.out |
|---|---|
| This is some text written on multiple lines. |
This is another text written on multiple lines. |
Explicație
...
Poți vedea testele pentru această problemă accesând