/*
题型:排序
注意,结构体别搞混了,按照题目意思模拟即可;注意cmp的写法
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct stu
{
int W;//权值
int D;//类别
int B;//编号
}a[20005];
bool cmp(stu a,stu b)
{
if(a.W!=b.W) return a.W>b.W;
else if(a.W==b.W) return a.B<b.B;
}
int E[11];//额外权值
int n,k;
int main()
{
cin>>n>>k;//n个人,k张照片
for(int i=1;i<=10;i++)
cin>>E[i];//初始权值
for(int j=0;j<n;j++)
{
cin>>a[j].W;//额外权值
a[j].B=j+1;//编号
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++) a[i].D=(i+1-1)%10+1;//归类别,按照题意写,本来编号为i+1
for(int i=0;i<n;i++) a[i].W+=E[a[i].D];//加上额外权值
sort(a,a+n,cmp);
for(int i=0;i<k;i++) cout<<a[i].B<<" ";
cout<<endl;
return 0;
}
P1583 魔法照片
最新推荐文章于 2020-01-15 04:41:37 发布