Առաքիչների համակարգ․ ժամանումը կանխատեսում են մոտակա «հարևանները»

Առաքիչների համակարգը կանխատեսում է առաքման ժամանակը (րոպեներով)՝ հիմնվելով երեք տվյալի վրա՝ հեռավորությունը (կիլոմետրերով), բեռի քաշը (կիլոգրամներով) և փոխադրամիջոցի տեսակը՝ հեծանիվ, մեքենա կամ դրոն։ Որոշ փոխադրամիջոցներ թռչում են, որոշները հեշտությամբ հաղթահարում են խցանումները, իսկ մյուսները՝ մնում դրանց մեջ։ Դրանք արդարացիորեն համեմատելու համար առաքման ժամանակը գնահատվում է՝ դիտարկելով նախկինում կատարված նմանատիպ առաքումները և միջինացնելով դրանց արդյունքները։

Ձեզանից պահանջվում է կարդալ նախկինում կատարված առաքումների պատմությունը և դրա հիման վրա գնահատել նոր պատվերների առաքման ժամանակը՝ օգտագործելով k-NN ռեգրեսիայի մեթոդը։ Երկու թվային հատկանիշները համեմատելի դարձրեք՝ կիրառելով min-max սանդղավորում (scaling), միայն պատմական տվյալներից հաշվարկված վիճակագրությամբ։ Փոխադրամիջոցի տեսակը ներկայացրեք one-hot վեկտորի տեսքով՝ օգտագործելով տրված բառարանը և դրանում սահմանված հերթականությունը։ Առաքումները համեմատեք՝ օգտագործելով Էվկլիդեսյան հեռավորությունը, որը հաշվարկվում է սանդղավորված երկու թվային արժեքների և one-hot վեկտորի համակցության վրա հիմնված։ Յուրաքանչյուր նոր պատվերի համար առաքման ժամանակը կանխատեսեք՝ հաշվելով նրան ամենամոտ միջինը նրա k ամենամոտ պատմական ժամանակների։ Եթե պատմական տվյալների որևէ թվային սյունակի բոլոր արժեքները նույնն են, ապա դրա սանդղավորված արժեքը 0 է։ Կարող եք համարել, որ մուտքային տվյալներում հանդիպող բոլոր փոխադրամիջոցները առկա են տրված բառարանում։

Մուտքի առաջին տողում տրված է մեկ ամբողջ թիվ v՝ փոխադրամիջոցների տեսակների քանակը։ Երկրորդ տողը պարունակում է v հատ բացատով անջատված փոխադրամիջոցների անուններ՝ փոխադրամիջոցների բառարանը։

Հաջորդ տողում տրված են երկու ամբողջ թվեր n k՝ համապատասխանաբար պատմական տվյալների տողերի քանակը և օգտագործվող հարևանների թիվը։ Հաջորդ n տողերից յուրաքանչյուրը պարունակում է չորս արժեք՝ distance weight vehicle target_time։

Այնուհետև հաջորդ տողում տրված է մեկ ամբողջ թիվ q՝ որը ցույց է տալիս, թե քանի նոր առաքման համար է պետք կանխատեսում անել։ Յուրաքանչյուր հաջորդ q տող պարունակում է distance weight vehicle արժեքները՝ նոր առաքման համար։

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

Մուտք

Ելք

3
bike car drone
6 3
2 1 bike 12
5 3 bike 20
10 5 car 30
12 4 car 35
1 0.5 drone 8
3 2 bike 15
2
3 1 bike
11 5 car

15.666666666666666
28.333333333333332

3
bike car drone
9 3
1 0.4 drone 9
1.5 0.6 drone 10
0.8 0.3 drone 8
3 1.2 bike 15
4 1.8 bike 18
5 2.0 bike 20
10 4.5 car 32
12 5.0 car 36
14 6.0 car 40
3
1.2 0.5 drone
4.2 1.7 bike
13 5.5 car

9
17.666666666666668
36

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