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 aa ja korkeintaan bb tuntia, ennen kuin alat nukkua uudestaan. Nukut aina cc tuntia.

On tulossa nn 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 nn, aa, bb ja cc: tapahtumien määrä, montako tuntia voit olla hereillä vähintään ja enintään sekä montako tuntia nukut.

Toisella rivillä on nn kokonaislukua x1,x2,,xnx_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ä 661111, jolloin ehdit tapahtumiin aikoina 55 ja 1212.

Osatehtävä 1 (13 pistettä)

  • 1n1001 \le n \le 100
  • 1a,b,c1001 \le a, b, c \le 100
  • 1xi1001 \le x_i \le 100

Osatehtävä 2 (28 pistettä)

  • 1n10001 \le n \le 1000
  • 1a,b,c1061 \le a, b, c \le 10^6
  • 1xi1061 \le x_i \le 10^6

Osatehtävä 3 (38 pistettä)

  • 1n2001 \le n \le 200
  • 1a,b,c1001 \le a, b, c \le 100
  • 1xi1091 \le x_i \le 10^9

Osatehtävä 4 (21 pistettä)

  • 1n10001 \le n \le 1000
  • 1a,b,c1091 \le a, b, c \le 10^9
  • 1xi1091 \le x_i \le 10^9