Un hotel pentru carantină COVID are camere. În fiecare cameră poate sta la un moment dat un singur pacient. Hotelul este utilizat o perioadă de zile dintr-un an. Perioada de carantină pentru fiecare pacient este exact zile din perioada . DSP a trimis conducerii hotelului o solicitare de cazare pentru pacienți. Pentru fiecare pacient este precizată prima zi din perioadă începând cu care va trebui să fie cazat – perioada începe cu ziua .
Cerință
- DSP solicită determinarea numărului maxim de pacienți care vor putea fi primiţi în hotel conform solicitării trimise.
- DSP solicită o listă cu numerele de ordine a pacienților din lista trimisă, care vor putea fi cazați.
- Care este cea mai lungă secvență de pacienți din lista trimisă de DSP care nu au putut fi cazați. Afișați lungimea secvenței, precum și numărul de ordine al primului pacient al secvenței.
Date de intrare
Pe prima linie a fișierului de intrare hotel.in
este scrisă cerința (, sau ). Pe linia a doua a fișierului de intrare sunt scrise valorile ( - numărul de camere din hotel, - zile carantină, - numărul pacienților, - perioada). Pe următoarea linie (a treia) sunt scrise numere naturale, separate prin câte un spațiu, reprezentând ziua în care începe carantina pentru pacientul respectiv.
Date de ieșire
Dacă cerința este , pe prima linie a fișierului de ieșire hotel.out
va fi scris numărul maxim de pacienți care pot fi cazaţi în hotel conform solicitării trimise de DSP. Dacă cerința este pe prima linie vor fi scrise, separate prin câte un spațiu, numerele de ordine ale pacienților cazați, în ordinea în care se va face cazarea lor. Pacienții care sunt cazați în aceiași zi, vor fi cazați în ordinea din lista trimisă de DSP. Dacă cerința este pe prima linie se vor afișa două numere naturale și , separate printr-un spațiu, reprezentând numărul maxim de pacienți necazați consecutiv din lista trimisă de DSP, respectiv numărul de ordine al primului pacient din secvența respectivă. Dacă există mai multe soluții la cerința , se va afișa cea cu numărul de ordine al primului pacient minim.
Restricții și precizări
- solicitările de cazare corespund numai celor zile din perioada de utilizare a hotelului, ceea ce înseamnă că un pacient nu poate fi cazat mai puțin de zile şi acestea trebuie să facă parte din perioada de zile
- cel puțin un pacient poate fi cazat, iar dacă toți pacienții au fost cazați, la cerința se vor afișa două valori
- cerința – puncte; cerința – puncte; cerința – puncte
- puncte se acordă din oficiu
Exemplul 1
hotel.in
1
2 7 8 365
1 10 2 11 1 3 4 18
hotel.out
5
Explicație
Cerința . Sunt camere, perioada de carantină este de zile, sunt pacienți, hotelul este utilizat 365 zile. Pot fi cazați pacienți adică pacienții cu numerele de ordine
Exemplul 2
hotel.in
2
2 7 8 365
1 10 2 11 1 3 4 18
hotel.out
1 5 2 4 8
Explicație
Cerința . Sunt cazați pacienții cu numerele de ordine și , în această ordine. Ambele camere devin disponibile din ziua . În ziua este cazat în camera pacientul cu numărul de ordine , iar în ziua pacientul cu numărul de ordine în camera . Camera devine liberă din ziua , pacientul cu numărul de ordine este cazat aici.
Exemplul 3
hotel.in
3
2 7 8 365
1 10 2 11 1 3 4 18
hotel.out
2 6
Explicație
Cerința . Nu au putut fi cazați pacienții cu numerele de ordine și . Deci secvența cu număr maxim de pacienți necazați este . Secvența are pacienți, primul având numărul de ordine .