- Language:
- Time limit: 1.00 s
- Memory limit: 512 MB
Olet juuri herännyt. Voit olla hereillä kerrallaan vähintään a ja korkeintaan b tuntia, ennen kuin alat nukkua uudestaan. Nukut aina c tuntia.
On tulossa n tapahtumaa tiettyinä aikoina. Mikä on suurin määrä tapahtumia, joiden aikaan voit olla hereillä? Et voi osallistua tapahtumaan samalla hetkellä, kun heräät tai menet nukkumaan.
Syöte
Ensimmäisellä rivillä on neljä kokonaislukua n, a, b ja c: tapahtumien määrä, montako tuntia voit olla hereillä vähintään ja enintään sekä montako tuntia nukut.
Toisella rivillä on n kokonaislukua x_1,x_2,\dots,x_n: tapahtumien ajat tunteina siitä, kun heräät ensimmäisen kerran. Tapahtumat annetaan aikajärjestyksessä, ja samalla ajanhetkellä ei voi olla monta tapahtumaa.
Tuloste
Tulosta yksi kokonaisluku: suurin määrä tapahtumia, joihin voit osallistua suunnittelemalla unirytmisi sopivasti.
Esimerkki
Syöte:
3 5 7 5 5 8 12
Tuloste:
2
Selitys: Voit nukkua välillä 6–11, jolloin ehdit tapahtumiin aikoina 5 ja 12.
Osatehtävä 1 (13 pistettä)
- 1 \le n \le 100
- 1 \le a, b, c \le 100
- 1 \le x_i \le 100
Osatehtävä 2 (28 pistettä)
- 1 \le n \le 1000
- 1 \le a, b, c \le 10^6
- 1 \le x_i \le 10^6
Osatehtävä 3 (38 pistettä)
- 1 \le n \le 200
- 1 \le a, b, c \le 100
- 1 \le x_i \le 10^9
Osatehtävä 4 (21 pistettä)
- 1 \le n \le 1000
- 1 \le a, b, c \le 10^9
- 1 \le x_i \le 10^9