题目链接
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=20005;
struct stu{ //其实核心就是这里将结构体里面的元素简化到了两个
int num;
int w;
}a[maxn];
bool cmp(stu x,stu y){
if(x.w==y.w) return x.num<y.num;
return x.w>y.w;
}
int main(){
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int n,k;
cin>>n>>k;
int e[11];
for(int i=1;i<=10;i++) cin>>e[i];
for(int i=1;i<=n;i++){
a[i].num=i;
cin>>a[i].w;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
int c=(i-1)%10+1; //这里的取模方式值得仔细思考
a[i].w+=e[c];
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=k;i++){
cout<<a[i].num;
if(i!=k) cout<<' ';
}
return 0;
}
作者
Bowen