***WAAAAA***

WAAAAA
原题链接https://nuoyanli.com/contest/27/problem/H
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本题就是acm比赛的形式的一个计算
n个人,m道题,k次记录
对于k次记录要判断每次记录由谁提交,哪一道题,交了几次,有没有通过,对于没有通过的要记录罚时,再通过之后再加上罚时,不通过则不加。
当没有人答出题时算ckx赢
当两个题量相同时计算罚时,罚时短的获胜

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm> 
using namespace std;
struct node
{
	long long id;
	long long ti;
	long long zong;
	long long fa[100];
	long long pan[100];
}stu[100005];
 
bool cmp(node x,node y)
{
 	if(x.ti==y.ti)
 	{
 		return x.zong<y.zong; 
	}
	 return x.ti>y.ti;
}
 
int main()
{
	long long T;
	scanf("%lld",&T);
	while(T--)
	{
		long long n,m,k;
		scanf("%lld %lld %lld",&n,&m,&k);
		memset(stu,0,sizeof(stu));
		for(int i=1;i<=k;i++)
		{
			long long a,b,c;
			char s[100005];
			scanf("%lld %lld %lld %s",&a,&b,&c,s);
			stu[b].id=b;
			if(s[0]=='A'&&stu[b].pan[c]==0)
			{
				stu[b].ti++;
				stu[b].zong+=(stu[b].fa[c]+a);
				stu[b].pan[c]=1;
			}
			else
			{
				stu[b].fa[c]+=20;
			}
		}
		sort(stu+1,stu+1+n,cmp);
		if(stu[1].id==1)
		{
			printf("WAAAAA\n");
		}
		else
		{
			printf("%lld\n",stu[1].id);
		} 
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值