메인 콘텐츠로 건너뛰기
Testna Učilnica FRI 25/26
  • 홈
  • 캘린더
  • 더 보기
Sitewide search 닫기
검색 입력 전환
한국어 ‎(ko)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
손님 계정으로 접속
로그인
Testna Učilnica FRI 25/26
홈 캘린더
모두 펼치기 모두 접기
  1. 강의 현황
  2. aps1uni
  3. Uvod
  4. izziv - Zvezdice

izziv - Zvezdice

완료 조건
Opened: 금요일, 6 10월 2023, 12:00 AM

Polde igra računalniško igro, ki jo sestavlja $n$ ugank. Pri posamezni uganki lahko dobi eno ali dve zvezdici, odvisno od tega, kako dobro jo reši; lahko pa uganko tudi preskoči in je sploh ne rešuje. Če jo hoče rešiti za dve zvezdici, bo porabil za reševanje več časa kot le za eno zvezdico. Natančneje povedano: pri uganki $i$ (za $i = 1, 2, \ldots, n$) porabi Polde $a_i$ enot časa, če jo hoče rešiti za eno zvezdico, oz. $b_i$ enot časa, če jo hoče rešiti za dve zvezdici (če pa je sploh ne rešuje, ne porabi tam nič časa). Polde ne more reševati več ugank naenkrat, zato je skupni čas reševanja preprosto vsota časov reševanja po posameznih ugankah. Polde bi rad v čim manj časa dobil natanko $w$ zvezdic.

Napiši algoritem, ki ugotovi, najmanj koliko enot časa potrebuje za to in katere uganke naj v ta namen reši za eno in katere za dve zvezdici. V kodi v komentarjih dokaži pravilnost svoje rešitve in analiziraj njeno časovno zahtevnost.

Omejitve podatkov:

  • $1 \leq n \leq 3 \cdot 10^5$
  • $1 \le w \le 2n$
  • $1 \le a_i < b_i \le 10^9$ za vse $i = 1, \ldots, n$

Vhodni in izhodni podatki:

V prvi vrstici sta celi števili $n$ in $w$, ločeni s presledkom. Sledi $n$ vrstic, od katerih $i$-ta vsebuje celi števili $a_i$ in $b_i$, ločeni s presledkom.

V prvo vrstico izpiši eno samo celo število, namreč najmanjši čas, v katerem je mogoče dobiti natanko $w$ zvezdic. V drugo vrstico izpiši niz $n$ znakov, ki pove, kako naj Polde rešuje uganke, da bo v tem minimalnem času dobil natanko $w$ zvezdic. V tem nizu naj bo $i$-ti znak enak 0, če naj Polde $i$-to uganko preskoči; 1, če naj jo reši za eno zvezdico; in 2, če naj jo reši za dve zvezdici. Če je možnih več enako dobrih rešitev, je vseeno, katero izpišeš.

Primer vhoda:

5 3
10 20
25 30
6 9
5 10
10 20

Pravilen izhod:

14
00210

Drugi primer:

10 4
5 7
1 26
26 29
12 25
3 6
7 21
16 25
17 24
16 25
15 23
11
2100100000
손님 계정으로 접속 (로그인)
Get the mobile app
Moodle 제공
Obvestilo o avtorskih pravicah