zoukankan      html  css  js  c++  java
  • cdoj 25 点球大战(penalty) 模拟题

    点球大战(penalty)

    Time Limit: 20 Sec  Memory Limit: 256 MB

    题目连接

    http://acm.uestc.edu.cn/#/problem/show/25

    Description

    在足球比赛中,有不少赛事,例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中,当比赛双方经过正规比赛和加时赛之后仍然不分胜负时,需要进行点球大战来决定谁能够获得最终的胜利。点球大战的规则非常简单,两方轮流派出球员罚点球,每方各罚5个。当5轮点球结束以后如果仍然不分胜负,则进入一轮定胜负的阶段。两方各派一名球员罚点球,直到有一方罚进而另一方没有进为止。

    在北美职业冰球联赛中,也有点球大战。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。

    在本题中,输入将给出每次点球是否罚进,而你的任务则是输出一个比分板。

    Input

    输入包含多组数据。每组数据的第一行包含一个整数N(1≤N≤18),表示双方总共罚了多少个点球,N=0表示输入结束。随后有N行,每行是一个如下形式的字符串:

    XXXX good:表示这个点球罚进

    或者XXXX no good:表示这个点球没有罚进

    其中XXXX表示球员名字(全部由字母和空格组成,保证不会出现歧义)

    每一行保证不超过100个字符。

    XXXX和good以及XXXX和no、no和good之间保证有且只有1个空格。

    good、no good都是小写。本题是大小写相关的。

    数据不保证点球大战一定结束,也不保证在结束以后立即结束这组数据(即:不用判断点球大战是否结束,只用把罚进的点球往比分上加即可)。

    Output

    对每组数据,输出一个比分板。一个点球如果罚进,则在对应的地方标上O,如果没有进则标上X。先罚球的队伍的信息在上面,后罚的在下面。最右边标上两队的比分。具体格式参考样例输出。注意如果一轮点球只罚了一个,则后面那个点球对应的地方写上-。

    Sample Input

    6
    Riise good
    Ballack good
    Gerrard no good
    Lampard no good
    Fernando Torres good
    Malouda good
    9
    Christiano Ronaldo no good
    Messi no good
    Giggs good
    Abidal no good
    Carrick good
    Ronaldinho good
    Rooney good
    Henry no good
    Tevez good
    0

    Sample Output

    1 2 3 Score
    O X O 2
    O X O 2
    1 2 3 4 5 Score
    X O O O O 4
    X X O X - 1

    HINT

    题意

    题解:

    模拟题

    代码:

    //qscqesze
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <set>
    #include <vector>
    #include <sstream>
    #include <queue>
    #include <typeinfo>
    #include <fstream>
    #include <map>
    #include <stack>
    typedef long long ll;
    using namespace std;
    //freopen("D.in","r",stdin);
    //freopen("D.out","w",stdout);
    #define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
    #define test freopen("test.txt","r",stdin)  
    #define maxn 200000
    #define mod 10007
    #define eps 1e-9
    int Num;
    char CH[20];
    const int inf=0x3f3f3f3f;
    const ll infll = 0x3f3f3f3f3f3f3f3fLL;
    inline ll read()
    {
        ll x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    inline void P(int x)
    {
        Num=0;if(!x){putchar('0');puts("");return;}
        while(x>0)CH[++Num]=x%10,x/=10;
        while(Num)putchar(CH[Num--]+48);
        puts("");
    }
    //**************************************************************************************
    
    string s;
    int flag[40];
    int n;
    int main()
    {
        //test;
        while(cin>>n)
        {
            memset(flag,0,sizeof(flag));
            if(n==0)
                break;
            getline(cin,s);
            for(int i=1;i<=n;i++)
            {
                getline(cin, s);
                int len=s.size();
                
                //cout<<s[len-1]<<s[len-2]<<s[len-3]<<s[len-4]<<s[len-5]<<s[len-6]<<s[len-7]<<s[len-7]<<endl;
                if(s[len-1]=='d'&&s[len-2]=='o'&&s[len-3]=='o'&&s[len-4]=='g'&&s[len-5]==' '&&s[len-6]=='o'&&s[len-7]=='n'&&s[len-8]==' ')
            {
                flag[i]=1;
            }
                else
                flag[i]=0;
            }
            for(int i=1;i<=n;i+=2)
            {
                printf("%d ",(i+1)/2);
            }
            printf("Score
    ");
            int ans=0;
            for(int i=1;i<=n;i+=2)
            {
                if(flag[i])
                    printf("X ");
                else
                    printf("O "),ans++;
            }
            printf("%d
    ",ans);
            ans=0;
            for(int i=2;i<=n;i+=2)
            {
                if(flag[i])
                    printf("X ");
                else
                    printf("O "),ans++;
            }
            if(n%2==1)
                printf("- ");
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    SQL的高级属性-
    查询
    SQL语句
    CSS的创建样式
    表单部分属性值
    HTML的语法和基本标签
    网页制作与HTML基本结构
    小程序button 去边框
    关于axios跨域带cookie
    Uncaught Error: code length overflow. (1604>1056)
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4544966.html
Copyright © 2011-2022 走看看