【求助】WA了第5个点
查看原帖
【求助】WA了第5个点
229957
Wu_while楼主2021/11/9 19:21
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct st
{
	char name[40];
	int score;
	int win;
	int lose;
}
a[60];
char str[40],s[40],t[40];
int n;
int x,y;
int search(char s[])
{
	for(int i=1;i<=n;i++)
		if(strlen(s)==strlen(a[i].name))
		{
			bool flag=1;
			for(int j=0;j<strlen(s);j++)
				if(a[i].name[j]!=s[j])
				{
					flag=0;
					break;
				}
			if(flag)
				return i;
		}
}
bool cmp(st a,st b)
{
	if(a.score!=b.score)
		return a.score>b.score;
	if(a.win-a.lose!=b.win-b.lose)
		return a.win-a.lose>b.win-b.lose;
	if(a.win!=b.win)
		return a.win>b.win;
	string aa=a.name;
	string bb=b.name;
	return aa<bb;
}
bool cmp2(st a,st b)
{
	string aa=a.name;
	string bb=b.name;
	return aa<bb;
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%s",a[i].name);
	for(int i=1;i<=n*(n-1)/2;i++)
	{
		scanf("%s",str);
		scanf("%d:%d",&x,&y);
		int pos=0;
		while(pos<strlen(str))
		{
			if(str[pos]=='-')
				break;
			pos++;
		}
		for(int i=0;i<pos;i++)
			s[i]=str[i];
		for(int i=pos+1;i<=strlen(str);i++)
			t[i-pos-1]=str[i];
		int ss=search(s);
		int tt=search(t);
		a[ss].win+=x;
		a[ss].lose+=y;
		a[tt].win+=y;
		a[tt].lose+=x;
		if(x>y)
			a[ss].score+=3;
		else if(x<y)
			a[tt].score+=3;
		else
			a[ss].score++,a[tt].score++;
	}
	sort(a+1,a+n+1,cmp);
	sort(a+1,a+n/2+1,cmp2);
	for(int i=1;i<=n/2;i++)
		printf("%s\n",a[i].name);
	return 0;
}
2021/11/9 19:21
加载中...