P1093 [NOIP2007 普及组] 奖学金
  • 板块学术版
  • 楼主JIANG_YANG
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/9 18:39
  • 上次更新2023/10/27 16:14:53
查看原帖
P1093 [NOIP2007 普及组] 奖学金
752525
JIANG_YANG楼主2022/8/9 18:39
虽然AC了,但我还是不太懂我的代码(听别人讲的),有没有谁看得懂的,麻烦讲一下这个代码的思路
#include <bits/stdc++.h>
using namespace std;
struct sj {
	int id;
	int sum,x,y,z;
} a[1111];
bool cpr(sj a,sj b) {
	if(a.sum==b.sum&&a.x==b.x) {
		return a.id<b.id;
	}
	if(a.sum==b.sum) {
		return a.x>b.x;
	} else {
		return a.sum>b.sum;
	}
}
int main() {
	int n;
	cin>>n;
	int i,j;
	for(i=1; i<=n; ++i) {
		a[i].id=i;
		cin>>a[i].x>>a[i].y>>a[i].z;
		a[i].sum=a[i].x+a[i].y+a[i].z;
	}
	sort(a+1,a+n+1,cpr);
	for(j=1; j<=5; ++j) {
		cout<<a[j].id<<" "<<a[j].sum<<endl;
	}
	return 0;
}
2022/8/9 18:39
加载中...