CSES - Merkkijono
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Uolevilla on merkkijono joka on n merkkiä pitkä. Uolevi haluaa katkaista merkkijonon m eri kohdasta, jolloin merkkijono katkeaa m+1 eri osaan. Osien pituudet järjestyksessä vasemmalta oikealle ovat a_1, \ldots, a_{m+1}. Kun Uolevi katkaisee x merkkiä pitkän merkkijonon, hän käyttää x operaatiota. Mikä on pienin määrä operaatiota joilla Uolevi saa hajotettua merkkijonon?

Syöte

Syötteen ensimmäisellä rivillä on kaksi lukua, n ja m, merkkijonon pituus ja monestako kohdasta merkkijono pitää katkaista. Seuraavalla m+1 rivillä on luvut, a_1, \ldots, a_{m+1}, merkkijonon osien pituudet katkaisujen jälkeen.

Tuloste

Tulosta yksi luku, pienin määrä operaatiota merkkijonon hajottamiseen.

Rajat

  • 1 \le n \le 10^9
  • 1 \le m \le 400
  • 1 \le a_i
  • \sum_{i=1}^{m+1}{a_i} = n

Esimerkki

Syöte:

8 2
3
3
2

Tuloste:

13

Uolevi katkaisee 8 merkkiä pitkän merkkijonon ensin osiin joiden pituudet ovat 3 ja 5. Sen jälkeen Uolevi katkaisee 5 merkkiä pitkän osan osiin joiden pituudet ovat 3 ja 2.

Syöte:

20 4
2
1
5
2
10

Tuloste:

40