Հավասարեցված, ստանդարտացված, դասակարգված

Փոստային բաժանմունքը ծանրոցները տեսակավորելու համար օգտագործում է KNN ալգորիթմը՝ հաշվի առնելով երկու հատկանիշ՝ չափսը սանտիմետրերով և զանգվածը գրամներով։ Սակայն գրամներով արտահայտված արժեքները շատ ավելի lớn են սանտիմետրերով արտահայտված արժեքներից, ինչի պատճառով KNN-ը չի կարող օբյեկտիվ գնահատական տալ։ Խնդիրը լուծելու համար՝ նախքան հարևանների քվեարկությանը անցնելը, որոշվում է ստանդարտացնել (standardize) տվյալները՝ կիրառելով z-գնահատականներ (z-scores), որպեսզի բոլոր հատկանիշները հավասարազոր դիտարկվեն։

Ձեզանից պահանջվում է կարդալ որոշ նախնական տվյալների բազան, ստանդարտացնել արժեքները, այնուհետև դասակարգել նոր ծանրոցները՝ օգտագործելով k-NN ալգորիթմը։ Յուրաքանչյուր հատկանիշի սյան համար անհրաժեշտ է համապատասխան արժեքից հանել տվյալ սյան միջին թվաբանականը և բաժանել ստանդարտ շեղմանը (standard deviation)՝ օգտագործելով նախնական տվյալներից հաշվված արժեքները։ Եթե սյան բոլոր արժեքները նույնն են (զրոյական ստանդարտ շեղում), ապա այդ սյան բոլոր տարրերի z-գնահատականը (z-score) պետք է լինի 0.0։ Ստանդարտացումից հետո, յուրաքանչյուր նոր տվյալի համար պետք է գտնել նախնական տվյալներից k ամենամոտ հարևանները՝ օգտագործելով Էվկլիդյան հեռավորությունը (Euclidean distance), և կանխատեսել այն պիտակը, որն ամենաշատն է հանդիպում այդ հարևանների մեջ։ Եթե մի քանի պիտակներ հավասար թվով են հանդիպում, պետք է ընտրել այբբենական կարգով ամենափոքրը։

Մուտքի առաջին տողում տրված են երեք ամբողջ թիվ՝ n d k որոնք համապատասխանաբար նախնական տվյալների տողերի քանակն են, յուրաքանչյուր տողի հատկանիշների քանակը և հարևանների քանակը։ Յուղորդ n տողերից յուրաքանչյուրը պարունակում է d իրական թիվ, որոնց հաջորդում է պիտակը (առանց բացատների)։

Այնուհետև տրված է մեկ ամբողջ թիվ՝ q՝ դասակարգման ենթակա նոր տվյալների քանակը։ Հաջորդ q տողերից յուրաքանչյուրը պարունակում է d իրական թիվ, որոնք պետք է դասակարգվեն՝ օգտագործելով նախնական տվյալների հիման վրա հաշվարկված z-գնահատականի վիճակագրությունը։

Ծրագիրը պետք է ելքում տպի q տող։ Յուրաքանչյուր տող պետք է պարունակի համապատասխան նոր տվյալի համար կանխատեսված պիտակը։

Մուտք

Ելք

6 2 3
25 40 LETTER
26 55 LETTER
24 45 LETTER
40 400 BOX
42 430 BOX
44 450 BOX
3
25 50
43 430
41 410

LETTER
BOX
BOX

9 2 3
24 35 LETTER
26 55 LETTER
25 45 LETTER
45 500 BOX
43 460 BOX
44 480 BOX
60 250 TUBE
62 270 TUBE
61 260 TUBE
3
26 50
61 255
44 470

LETTER
TUBE
BOX

4 2 4
24 45 LETTER
26 55 LETTER
44 450 BOX
46 470 BOX
1
35 250

BOX

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue