Prihlásenie Registrácia  

C2 - FUP

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Gertrúda je zákazníčkou internetového poskytovateľa LostPackets, ktorý aplikuje tzv. pravidlá na férové používanie služieb – FUP. Podľa týchto pravidiel môžu zákazníci používať plnú rýchlosť pripojenia, ak za žiadne dva za sebou nasledujúce dni nepreniesli viac ako M bytov dát. Gertrúda si však túto pasáž predtým nevšimla a hrozí jej spomalenie pripojenia.

Našťastie, jej kamarát Alfonzko pracuje ako technik v LostPackets, a tak sa ponúkol, že by mohol poprehadzovať poradie dní v záznamoch tak, aby limit nebol prekročený. Z technických dôvodov však Alfonzko nemôže presunúť záznam o prvom dni tak, aby tým neupútal pozornosť. Ostatné záznamy už môže bez obáv ľubovoľne zoradiť. Dokážete im pomôcť nájsť vhodné zoradenie záznamov tak, aby FUP nebolo prekročené?

Úloha

Nájdite také usporiadanie dní, aby žiaden súčet prenesených bytov z dvoch za sebou idúcich dní nepresiahol M. Množstvo prenesených dát v prvom dni sa nemôže zmeniť.

Vstup

Na prvom riadku vstupu je celkový počet dní v záznamoch D a limit M (1 ≤ M ≤ 1 000 000 000). Nasleduje D kladných celých čísel určujúcich množstvo dát, ktoré v jednotlivých dňoch Gertrúda preniesla (žiadne z nich nie je väčšie ako 1 000 000 000).

C1

1 ≤ D ≤ 10

C2

1 ≤ D ≤ 100 000

Výstup

Vypíšte D čísel – ľubovoľné vhodné usporiadanie denných záznamov. Pred, za aj medzi číslami môže byť ľubovoľný počet medzier alebo znakov nového riadku. Ak vhodné usporiadanie neexistuje, vypíšte len text „Neda sa.“ (bez úvodzoviek).

Príklad 1

Vstup:

4 10
5 8 2 1

Výstup:

5 2 8 1

Poznámka: Existuje viac správnych riešení.

Príklad 2

Vstup:

3 10
4 6 6

Výstup:

Neda sa.