zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    单元测试
    软件工程
    使用工具进行单元测试
    关于软件工程的理解
    使用Junit等工具进行单元测试
    目前对软件工程所存在的问题
    二人组-----五子棋
    使用Junit等工具进行单元测试过程记录
    对软件工程的理解以及存在的问题
    软件设计文档及数据流向图
  • 原文地址:https://www.cnblogs.com/yangqingli/p/4927691.html
Copyright © 2011-2022 走看看