[NOIP2007 普及組] T1 獎學(xué)金 AC過程
#include <bits/stdc++.h>
using namespace std;
struct stu{
int ch,ma,en;
int sum;
int id;
}a[310];//結(jié)構(gòu)體儲存學(xué)生數(shù)據(jù)。
bool cmp(stu a,stu b){//排序函數(shù)
if(a.sum!=b.sum){
return a.sum>b.sum;
}else{
if(a.ch!=b.ch){
return a.ch>b.ch;
}else{
return a.id<b.id;
}
}
}
int n;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d%d",&a[i].ch,&a[i].ma,&a[i].en);
a[i].sum=a[i].ch+a[i].ma+a[i].en;
a[i].id=i;
}//輸入
for(int i=1;i<=5;i++){
for(int j=i+1;j<=n;j++){
if(cmp(a[j],a[i])){
swap(a[i],a[j]);
}
}
}//選擇排序,因為n最大是300,時間復(fù)雜度不會過1秒。
for(int i=1;i<=5;i++){
printf("%d %d\n",a[i].id,a[i].sum);
}
}//輸出。
這是一道簡單的排序題,可以用重構(gòu)來寫,更簡單,我這里用的是排序函數(shù)。
注意多關(guān)鍵字即可。
標(biāo)簽: