7-9 奥运排行榜
#include <stdio.h>
#include<stdlib.h>
typedef struct node *Node;
struct node {
int goldMadal;
int medal;
int populous;
}*Data;
int n;
int GoldTotal(int);
int MedalTotal(int);
int GoldPer(int);
int MedalPer(int);
int Min(int a,int b,int c,int d){
int flag1,flag2,flag;
if(a>b){
a=b;flag1=2;
}else flag1=1;
if(c>d){
c=d;flag2=4;
}else flag2=3;
if(a>c){
a=c;flag=flag2;
}else flag=flag1;
printf("%d:%d",a,flag);
return a;
}
int main() {
int m,i,j;
scanf("%d%d",&n,&m);
Data=(Node)malloc(sizeof(struct node)*n);
for(i=0; i<n; i++) {
scanf("%d%d%d",&Data[i].goldMadal,&Data[i].medal,&Data[i].populous);
}
for(i=0; i<m; i++) {
int con;
scanf("%d",&con);
if(i)printf(" ");
int gold=GoldTotal(con);
int medal=MedalTotal(con);
int pgold=GoldPer(con);
int pmedal=MedalPer(con);
Min(gold,medal,pgold,pmedal);
}
return 0;
}
int GoldTotal(int K) {
int Sum=Data[K].goldMadal;
int Paimin=1;
int i;
for(i=0; i<n; i++) {
if(Data[i].goldMadal>Sum)Paimin++;
}
return Paimin;
}
int MedalTotal(int K) {
int Sum=Data[K].medal;
int Paimin=1;
int i;
for(i=0; i<n; i++) {
if(Data[i].medal>Sum)Paimin++;
}
return Paimin;
}
int GoldPer(int K) {
double Sum=Data[K].goldMadal*1.0/Data[K].populous;
int Paimin=1;
int i;
for(i=0; i<n; i++) {
if(Data[i].goldMadal*1.0/Data[i].populous>Sum)Paimin++;
}
return Paimin;
}
int MedalPer(int K) {
double Sum=Data[K].medal*1.0/Data[K].populous;
int Paimin=1;
int i;
for(i=0; i<n; i++) {
if(Data[i].medal*1.0/Data[i].populous>Sum)Paimin++;
}
return Paimin;
}