CSES - Datatähti 2023 loppu - Unirytmi
  • 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ä 611, 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