[GRYZ2015]足球联赛

问题描述

巴蜀中学新一季的足球联赛开幕了。足球联赛有n 只球队参赛,每赛季,每只球队要与
其他球队各赛两场,主客各一场,赢一场得3 分,输一场不得分,平局两只队伍各得一分。
英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是
很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够Burning 的girl,她的能力不
止如此,她还能预测这个赛季所有球队的比赛结果。
虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总
是在sleep,因此她的脑里只有整数没有实数,而且,她只会10 以内非负整数的加法运算,
因此她只有结果却无法知道谁会获得联赛的冠军。
小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:
现在,给你一个n*n 的矩阵表示比赛情况。第i 行第j 列的字母表示在第i 只队伍
在主场迎战第j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。现在需
要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。

输入格式

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

输出格式

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

样例输入输出1

soccer.in soccer.out
3
-WW
W-W
WW-
1 2 3

样例输入输出2

soccer.in soccer.out
5
-DWWD
L-WLL
DD-WD
DDL-L
DDLL-
1

数据范围

对于40%的数据,满足N<=20
对于100%的数据,满足N<=50

思路

  在线处理也可以,离线排序也可以。

  本来对这个题很有信心,可是交上去只有30分,后来在读入文件的时候加了一个readln,然后就这样过了。

只是一个readln啊!

var a:array[1..100] of longint;
    i,j,sum,n:longint;x:char;

procedure intt;
begin
    assign(input,'soccer.in');
    assign(output,'soccer.out');
    reset(input);
    rewrite(output);
end;

procedure outt;
begin
    close(input);
    close(output);
end;

function max(x,y:longint):longint;
begin
    if x>y then max:=x else max:=y;
end;

begin
    //intt;
    sum:=0;
    fillchar(a,sizeof(a),0);
    readln(n);
    for i:=1 to n do
        begin
        for j:=1 to n do
            begin
                read(x);
                if x='-' then
                    begin
                        continue;
                    end;
                if x='W' then
                    begin
                        inc(a[i],3);
                        continue;
                    end;
                if x='L' then
                    begin
                        inc(a[j],3);
                        continue;
                    end;
                if x='D' then
                    begin
                        inc(a[i]);
                        inc(a[j]);
                        continue;
                    end;
            end;
        readln;
        end;
    for i:=1 to n do sum:=max(a[i],sum);
    for i:=1 to n do
        if a[i]=sum then
            write(i,' ');
    //outt;
end.
View Code

 

转载于:https://www.cnblogs.com/yangqingli/p/4927691.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值