排序-洛谷P1583魔法照片

题目链接

题目戳这里

代码

#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

发布了50 篇原创文章 · 获赞 7 · 访问量 1151

猜你喜欢

转载自blog.csdn.net/numb_ac/article/details/103116437