Logo
(追記) (追記ここまで)

7166번 - Värvipalett 다국어언어 제한함수 구현

시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 1024 MB153110.000%

문제

Tarkvarafirma Gold \& Silver Soft on arendamas uut graafikaprogrammi. Üks selle mooduleid on värvipaleti haldus. Programmi käivitudes on palett tühi. Edasi võib kasutaja lisada paletti uusi värve või küsida, milline paletis olevatest värvidest on antud värvile sarnaseim.

Värve esitatakse $K$-bitiste arvudena (väärtustega 0ドル$ kuni 2ドル^K-1$) ja kahe värvi sarnasuseks loetakse nende esitustes kokkulangevate bittide arvu. Näiteks $K = 5$ korral on värvide 00110 ja 10101 sarnasus 2ドル,ドル sest kokku langevad ainult vasakult teise ja kolmanda biti väärtused.

Kirjutada programmile värvipaleti haldamise moodul, milles on järgmised funktsioonid:

Funktsioon Kirjeldus
void init(int k, int n) Paleti initsialiseerimine $k$-bitiste värvide kasutamiseks. Seda funktsiooni kutsutakse välja üks kord programmi töö alguses ja sellele järgnevad kokku $n$ add ja find väljakutset.
void add(int c) Värvi $c$ lisamine paletti.
int find(int c) Värvile $c$ paletist parima vaste leidmine. Funktsioon peab tagastama paletis olevate värvide hulgast värviga $c$ maksimaalselt sarnase. Kui maksimaalselt sarnaseid on mitu, tagastada ükskõik milline neist. Seda funktsiooni kutsutakse välja ainult siis, kui paletis on juba vähemalt üks värv.
void done() Töö lõpp. Seda funktsiooni kutsutakse välja üks kord programmi töö lõpus.

입력

Tekstifaili esimesel real on värvide esitamiseks kasutatavate bittide arv $K$ (1ドル \le K \le 20$) ja operatsioonide arv $N$ (1ドル \le N \le 10^6$). Järgmisel $N$ real on igaühel täisarvud $T_i$ ja $C_i$ (0ドル \le C_i < 2^K$), kus $T_i = 1$ tähendab värvi $C_i$ lisamist paletti ja $T_i = 2$ värvile $C_i$ parima vaste leidmist paletist.

출력

Tekstifaili väljastatakse hindamisprogrammi ja mooduli vahelise suhtluse logi.

제한

예제 입력 1

2 3
1 1
2 0
2 1

예제 출력 1

init(2, 3)
add(1)
find(0) = 1
find(1) = 1
done()

예제 입력 2

3 5
1 0
1 7
2 1
1 1
2 1

예제 출력 2

init(3, 5)
add(0)
add(7)
find(1) = 0
add(1)
find(1) = 1
done()

힌트

출처

Olympiad > Estonian Informatics Olympiad > 2016-17 > Second Selection Competition 2번

제출할 수 있는 언어

C++17, C++20, C++17 (Clang), C++20 (Clang)

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /