zoukankan      html  css  js  c++  java
  • 发气球系统

    问题 J: 发气球

    时间限制: 1 Sec  内存限制: 128 MB
    [提交] [状态]

    题目描述

    今天是因特网程序设计全国大赛(NPSC)的决赛!比赛中有一样不可或缺的东西,就是「气球」。
    决赛中总共有28支队伍,参赛的队伍要在240分钟内面对7道问题。
    比赛中上传的每一份程序代码,经过评测后会有下列信息:Run ID(这份程序代码是整个比赛中第几个上传的,从 1 开始编号)、Submission Team(这份程序代码是由哪一队上传的,队伍被编号为 1 至 28)、Submission Time(这份程序代码是在第几分钟上传的,可能的数据是整数0至239)、Problem ID(这份程序代码是针对哪一题上传的,可能的数据会是大写字母A到G)、
    Verdict(这份程序代码的评测结果,可能的数据为AC、WA、TLE跟RTE其中之一)。
    当一支队伍,在比赛中首次解开某一题时(也就是上传程序代码至该题并得到AC的 Verdict),该队伍就能在这个时间获得一颗代表该题的气球。但若该次上传的 Submission Time 大于或等于180,那么就不会拿到任何气球,因为此时计分版已经封榜了。
    现在请你帮忙撰写一个气球服务器,我们将给你整场比赛中共 N 个上传的信息,请你印出指令指示现场的工作人员发送气球。


    输入

    第一行包含一个整数 N,代表决赛中总共有 N 个上传记录。
    接下来 N 行,每行都包含三个整数 Ai,Bi,Ci 和两个字符串 Pi,Vi,依序表示这个上传的 Run ID、Submission Team、Submission Time、Problem ID 和 Verdict。


    输出

    对每一个应该获得气球的上传,请输出"Send balloon of <Problem ID> to team <Team> at time <Time>."于一行(不包含引号),其中的<Problem ID>为该队解开的题目、<Team>为获得气球的队伍、<Time>为该上传的时间,来表示一个发送气球的指令。
    请注意发送气球的指令要按照 Run ID 由小到大依序印出,如果一个获得气球的上传是Run ID 2,而另一个是 Run ID 5,那么 Run ID 2的发送气球的指令一定要印在比较前面。
    在输出所有发送气球的指令后,请输出"Go get snacks."于一行(不包含引号),让工作人员知道气球发完,可以去吃点心了。


    样例输入 Copy

    10
    1 1 1 A TLE
    2 1 10 A AC
    3 2 10 A AC
    4 2 100 A AC
    5 1 155 G AC
    6 1 166 A WA
    7 1 177 A RTE
    8 10 179 C AC
    9 11 180 C AC
    10 28 239 B AC
    

    样例输出 Copy

    Send balloon of A to team 1 at time 10.
    Send balloon of A to team 2 at time 10.
    Send balloon of G to team 1 at time 155.
    Send balloon of C to team 10 at time 179.
    Go get snacks.
    

    提示

    【数据规模】
    • 1 ≤ N ≤ 105
    • Ai = i,该 N 行中的 Ai 依序为1,2,3,...N
    • 1 ≤ Bi ≤ 28
    • 0 ≤ Ci ≤ 239
    • Ci ≤ Cj ∀i ≤ j,该 N 行每一个 Cj 都大于或等于前面每一行的 Ci  (∀任意的意思,数学符号

    • Pi 为A、B、C、D、E、F、G其中一个
    • Vi 为AC、WA、TLE、RTE其中一个
    注意如果该组题已经AC了,再提交一边即使AC了也不能给他发气球
    就是设一个二维数组int y[100][100];//某个组的某个题的状态
    AC代码:
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<map> 
    #include<bits/stdc++.h> 
    using namespace std;
    typedef long long ll; 
    inline int read()
    {
        int 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;
    }
    const int maxn=1e5+10;
    struct node{
        int flag;
        int team;
        int time;
        char p;
        string zhuangtai;
    }a[maxn];
    int y[100][100];//某个组的某个题的状态 
    int n;
    void inint(){
        cin>>n;
    }
    int main(){
        inint();
        for(int i=0;i<n;i++){
            cin>>a[i].flag>>a[i].team>>a[i].time>>a[i].p>>a[i].zhuangtai;
            
        }
        for(int i=0;i<n;i++){
            if(a[i].time>=180){
                break;
            }
            if(a[i].zhuangtai=="AC"){
                if(y[a[i].team][a[i].p-'A']==1){
                    continue;
                }
                else{
                    printf("Send balloon of %c to team %d at time %d.
    ",a[i].p,a[i].team,a[i].time);
                    y[a[i].team][a[i].p-'A']=1;
                }
            }
        }
        printf("Go get snacks.");
    } 


     
  • 相关阅读:
    C# 排序
    第一个 Windows 应用程序
    WINDEF.h 变量类型
    几种流行的JS框架的选择
    SqlHelper 数据库操作类
    希望找人一起写个 Ajax 的封装
    C# 字符串处理一些方法
    SqlHelper 数据库操作类2
    JavaScript 字符串函数扩充
    JavaScript 字符串处理函数
  • 原文地址:https://www.cnblogs.com/lipu123/p/12264008.html
Copyright © 2011-2022 走看看