Värvide segamine | 프로그래밍의 벗 PivotOJ
PivotOJ

Värvide segamine

시간 제한: 1200ms메모리 제한: 1024MB출처: EIO 2019-20 finalBOJ 29927

문제

Ehituspoes on masin, mis oskab punasest, rohelisest ja sinisest värvist (nimetame neid edaspidi põhivärvideks) segada kokku erinevaid värvitoone. Iga värvitoon, mida masin oskab kokku segada, on antud RGB-koodiga, mis näitab, kui palju mingit põhivärvi kulub. Kood on esitatud kolme 16-bitise arvuga. Ostjad soovivad saada mingeid spetsiifilisi värvitoone, mis on samuti antud oma RGB-koodidega. Masin aga ei pruugi osata teha täpselt nõutud tooni ning valib seetõttu lähima võimaliku vaste. "Lähedust" mõõdetakse 3D Manhattani kaugusega värviruumis. Näiteks värvitoonide "100 50 0" ja "20 25 10" vaheline kaugus on vastavate põhivärvide omavaheliste kauguste summa ehk 10020+5025+010=115|100-20|+|50-25|+|0-10|=115. Mõnel päeval on aga masinal mõni põhivärvidest (punane, roheline või sinine) hoopiski otsas. Sellisel juhul esitavad ostjad ka vaid selliseid soove, kus seda põhivärvi vaja ei ole. Masina konstrueerimisel on arvestatud, et võimalikud toonid oleksid värviruumis võimalikult ühtlaselt esindatud --- seetõttu võib eeldada, et võimalikud toonid on enam-vähem juhuslikud ja esindatud võrdse tõenäosusega. Kõik toonid, mida masin oskab teha, on omavahel erinevad, aga klientide soovid võivad kattuda.

입력

Tekstifaili esimesel real on värvitoonide arv 1N1000001 \le N \le 100\,000, mida masin oskab teha, ning soovide arv 1Q1000001 \le Q \le 100\,000, mida masinalt küsitakse. Järgmisel N+QN + Q real on igaühel 3 täisarvu lõigust 0655350 \ldots 65535 ehk värvide RGB-koodid. Neist esimesel NN real on masinas segatavate värvitoonide koodid ja viimasel QQ real on ostjate soovitud värvide RGB-koodid.

출력

Tekstifaili väljastada QQ rida, igale reale üks täisarv: iga ostja soovitud värvi kohta sellele lähima värvi number, mida masin segada oskab. Masina segatavad värvid on nummerdatud 0N10 \ldots N-1 sisendis toodud järjekorras. Kui kaks värvi on samal kaugusel, väljastada väiksema numbriga värv.

예제

예제 1

입력
3 3
200 0 0
8 0 0
100 0 0
8 0 0
300 0 0
150 0 0
출력
1
0
0

예제 2

입력
3 3
75 25 0
100 100 0
150 50 0
100 50 0
50 100 0
200 30 0
출력
0
1
2

예제 3

입력
4 3
5 5 5
200 200 200
150 10 10
0 0 255
0 0 0
10 10 200
175 105 105
출력
0
3
1
코드를 제출하려면 로그인하세요.