首页 > 学院 > 开发设计 > 正文

PAT 1075

2019-11-08 01:36:47
字体:
来源:转载
供稿:网友
#include<cstdio>#include<algorithm>#include<stdlib.h>#include<cstring>using namespace std;struct student{	int id;	int score[6];//题号,分数	bool flag;//判断是否有输出过	int total;	int solve;	int rank;}st[10010];bool cmp(student x,student y){	if(x.total!=y.total)		return x.total>y.total;	else if(x.solve!=y.solve)		return x.solve>y.solve;	else return x.id<y.id;}int n,k,m;//人数,题数,提交数void init(){	for(int i=1;i<=n;i++)	{		st[i].id=i;		memset(st[i].score,-1,sizeof(st[i].score));		st[i].flag=false;		st[i].total=0;		st[i].solve=0;		st[i].rank=0;	}}int main(){	int perfect[6]={0};	scanf("%d%d%d",&n,&k,&m);	init();	for(int i=1;i<=k;i++)		scanf("%d",&perfect[i]);	int user_id,test_id,grade;	for(int i=1;i<=m;i++)	{		scanf("%d%d%d",&user_id,&test_id,&grade);		if(grade!=-1)		{				st[user_id].flag=true;		}		if(grade==perfect[test_id]&&st[user_id].score[test_id]<grade)		{				st[user_id].solve++;		}		if(st[user_id].score[test_id]<grade)		{			st[user_id].score[test_id]=grade;		}		if(grade==-1&&st[user_id].score[test_id]==-1)		{			st[user_id].score[test_id]=0;		}	}	for(int i=1;i<=n;i++)	{		for(int j=1;j<=k;j++)		{			if(st[i].score[j]!=-1)			{				st[i].total+=st[i].score[j];			}		}	}	sort(st+1,st+n+1,cmp);	st[1].rank=1;	for(int i=2;i<=n&&st[i].flag==true;i++)	{		if(st[i].total==st[i-1].total)			st[i].rank=st[i-1].rank;		else 			st[i].rank=i;	}	for(int i=1;i<=n;i++)	{		if(st[i].flag!=false)		{			PRintf("%d %05d %d",st[i].rank,st[i].id,st[i].total);			for(int j=1;j<=k;j++)			{				if(st[i].score[j]!=-1)					printf(" %d",st[i].score[j]);				else printf(" -");			}			printf("/n");		}			}	system("pause");	return 0;}
上一篇:四旋翼无人机

下一篇:POJ 1852 Ants

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表