CSES - Datatähti 2025 alku - Tikut
  • Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Annettuna on nn tikkua, joilla on pituudet a1,a2,,ana_1,a_2,\dots,a_n. Sinun tulee tehdä tikkuihin täsmälleen kk leikkausta siten, että tikkujen määräksi tulee n+kn + k.

Leikkausten jälkeen pisimmän ja lyhimmän tikun pituuden erotus halutaan mahdollisimman pieneksi. Tehtäväsi on laskea pienin mahdollinen erotus kaikille määrille k=1,2,,mk=1,2,\dots,m.

Leikkausten on säilytettävä tikkujen pituudet positiivisina kokonaislukuina. Voit olettaa, että tikkuihin on mahdollista tehdä mm leikkausta.

Syöte

Ensimmäisellä rivillä on kaksi kokonaislukua n,mn,m: tikkujen määrä ja leikkausten enimmäismäärä.

Toisella rivillä on nn kokonaislukua a1,a2,,ana_1,a_2,\dots,a_n: tikkujen pituudet.

Tuloste

Tulosta yhdelle riville mm lukua: mikä on pienin mahdollinen erotus pisimmän ja lyhimmän tikun pituuden välillä, jos tehdään täsmälleen k=1,2,,mk=1,2,\dots,m leikkausta.

Esimerkki

Syöte:

3 3
7 3 2

Tuloste:

2 1 2

Osatehtävä 1 (7 pistettä)

  • 1n51 \le n \le 5
  • 1m101 \le m \le 10
  • 1ai101 \le a_i \le 10

Osatehtävä 2 (8 pistettä)

  • 1n10001 \le n \le 1000
  • 1m20001 \le m \le 2000
  • 1ai31 \le a_i \le 3

Osatehtävä 3 (12 pistettä)

  • 1n10001 \le n \le 1000
  • 1m21 \le m \le 2
  • 1ai10001 \le a_i \le 1000

Osatehtävä 4 (24 pistettä)

  • 1n1001 \le n \le 100
  • 1m2001 \le m \le 200
  • 1ai2001 \le a_i \le 200

Osatehtävä 5 (31 pistettä)

  • 1n10001 \le n \le 1000
  • 1m20001 \le m \le 2000
  • 1ai1091 \le a_i \le 10^9

Osatehtävä 6 (18 pistettä)

  • 1n1051 \le n \le 10^5
  • 1m21051 \le m \le 2 \cdot 10^5
  • 1ai1091 \le a_i \le 10^9