zoukankan      html  css  js  c++  java
  • The Ninth Hunan Collegiate Programming Contest (2013) Problem L

    Problem L

    Last Blood

    In many programming contests, special prizes are given to teams who solved a particular problem first. We call the first accepted solution "First Blood".

    It's an interesting idea to set prizes for "Last Blood". Then people won't submit their solutions until the last minute. But this is dangerous: if the solution got "Wrong Answer" or even "Time limit exceeded", it may be too late to correct the solution.

    You may argue that once a submission got "Accepted", the team can send it again, but in this problem, we only consider the earliest accepted solution of a team for each problem, so re-sending an accepted solution does NOT help!

    Given all the submissions in a contest, your task is to find out the "Last Blood" prizes for each problem.

    Input

    There is only one test case. The first line contains three integer n, t, m (5<=n<=12, 10<=t<=100, 1<=m<=1000), the number of problems, teams and submissions. Each of the following m lines describes one submission: time (0<=time<=300), teamID(1~t), problem (A~L) and verdict("Yes" or "No"). Submissions are sorted in time order. That means for two submissions of the same "time" field, the submission that comes later in the input is received later in the contest (maybe only a few seconds later). No two submissions are received in exactly the same time.

    Output

    For each problem, print the last blood's time and teamID.

    Sample Input

    5 10 18
    0 2 B No
    11 2 B Yes
    20 3 A Yes
    35 8 E No
    40 8 E No
    45 7 E No
    50 10 A Yes
    100 4 A No
    120 6 B Yes
    160 2 E Yes
    180 2 A Yes
    210 3 B Yes
    240 10 B No
    250 10 B Yes
    270 2 B Yes
    295 8 E Yes
    295 7 E Yes
    299 10 D Yes
    

    Output for the Sample Input

    A 180 2
    B 250 10
    C - -
    D 299 10
    E 295 7
    

    The Ninth Hunan Collegiate Programming Contest (2013) Problemsetter: Rujia Liu Special Thanks: Md. Mahbubul Hasan

       记在这个地方主要是怕以后忘记接口,也方便大家交流,可能方法很傻吧。

    #include <iostream>
    #include <stdio.h>
    #include <queue>
    #include <stdio.h>
    #include <string.h>
    #include <vector>
    #include <queue>
    #include <set>
    #include <algorithm>
    #include <map>
    #include <stack>
    #include <math.h>
    #define Max(a,b) ((a)>(b)?(a):(b))
    #define Min(a,b) ((a)<(b)?(a):(b))
    using namespace std ;
    typedef long long LL ;
    
    struct Node{
        int team ;
        int time ;
        int id ;
        Node(){} ;
        Node(int i ,int te,int ti):id(i),team(te),time(ti){} ;
        friend bool operator <(const Node A ,const Node B){
             if(A.time==B.time)
                return A.id>B.team ;
             else
                return A.time>B.time ;
        }
    };
    set<int>problem_man[18] ;
    set<Node>problem[18] ;
    
    int  N , M , T ;
    int main(){
       cin>>N>>M>>T ;
       for(int i=0;i<N;i++){
           problem[i].clear() ;
           problem_man[i].clear() ;
       }
       int time ,team;
       string problem_id ,answer ;
       for(int t=1;t<=T;t++){
           cin>>time>>team>>problem_id>>answer ;
           int id=problem_id[0]-'A' ;
           if(answer=="Yes"){
               if(problem_man[id].find(team)==problem_man[id].end()){
                    problem_man[id].insert(team) ;
                    problem[id].insert(Node(t,team,time)) ;
               }
           }
       }
       set<Node>::iterator p ;
       for(int i=0;i<N;i++){
           if(problem[i].size()){
              p=problem[i].begin() ;
              printf("%c %d %d
    ",'A'+i,p->time ,p->team) ;
           }
           else
              printf("%c - -
    ",'A'+i ) ;
       }
       return 0 ;
    }
  • 相关阅读:
    MySQL查询今天/昨天/本周、上周、本月、上个月份数据的sql代码
    lumen 登陆 注册 demo
    Maven与Ant的区别
    Java中String为什么是final
    一天一点MySQL复习——获取数据库系统时间、变量赋值、变量比较
    一天一点MySQL复习——存储过程
    Mybatis学习——传递Map型参数
    Java修饰符
    RegEx正则表达式学习笔记
    一天一个Java基础——通过异常处理错误
  • 原文地址:https://www.cnblogs.com/liyangtianmen/p/3367241.html
Copyright © 2011-2022 走看看