足球联赛

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SSLGZ_yyc/article/details/83351228

题目描述

巴蜀中学新一季的足球联赛开幕了。足球联赛有 n 只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。

英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。

虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,因此她只有结果却无法知道谁会获得联赛的冠军。

小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:

现在,给你一个 n*n 的矩阵表示比赛情况。第 i 行第 j 列的字母表示在第 i 只队伍在主场迎战第 j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。现在需要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。

输入
第一行一个整数 n。
接下来 n 行,每行 n 个字符,表示输赢情况。
第 i 行第 i 列为 - ,因为一只队伍不可能与自己比赛。

输出
输出得分最高的队伍编号。如有多个在一行中输出,用一个空格分开。

输入样例
样列1
3
-WW
W-W
WW-

样列2
5
-DWWD
L-WLL
DD-WD
DDL-L
DDLL-

输出样例
样例1
1 2 3

样例2
1

【数据范围】
对于 40%的数据,满足 N<=20
对于 100%的数据,满足 N<=50
.
.
.
.
.
分析
水题一道,直接暴力即可
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	int n,b[100],f[100];
	char a[100][100];
	memset(f,sizeof(f),0);
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		b[i]=i;
		for (int j=1;j<=n;j++)
		{
			cin>>a[i][j];
			if (i==j) continue;
			if (a[i][j]=='W') f[i]+=3; else 
			if (a[i][j]=='L') f[j]+=3; else
			if (a[i][j]=='D') 
			{
				f[i]+=1;
				f[j]+=1;
			}
		}
	}
	for (int i=1;i<=n-1;i++)
		for (int j=i+1;j<=n;j++)
			if (f[i]<f[j])
			{
				f[0]=f[i];f[i]=f[j];f[j]=f[0];
				b[0]=b[i];b[i]=b[j];b[j]=b[0];
			}
	int max=f[1],i=1;
	while (f[i]==max)
	{
		printf("%d ",b[i]);
		i++;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/SSLGZ_yyc/article/details/83351228