HDU - 6297 CCPC直播

在比特镇举行的中国大学生程序设计竞赛CCPC(China Collegiate Programming Contest)开始啦!这次比赛中加入了现场视频直播,而在直播屏幕的左下角,会显示评测队列。

比特镇的科技水平并不发达,直播分辨率并不高。准确地说,每个评测记录将被显示在11 行3838 列的像素格上。一条评测记录由44 个部分组成,从左往右依次为排名(33 像素),队名(1616 像素),题号(44 像素),评测情况(1212 像素)。相邻两个部分之间由11 像素的分隔线|| 分开。其中,排名右对齐显示,队名左对齐显示,长度不足时用空格补齐。题号一定是44 位正整数,因此恰好占据44 像素。评测情况则比较复杂,它由两侧的括号[][] 以及中间1010 像素组成。

样例第一行表示排名第1919 的队伍qqqqq_University提交了题目10011001 ,已经通过了30%30% 的测试点,故左对齐显示33 个X。

样例第二行表示排名第125125 的队伍quailty_U_2提交了题目10021002 ,评测结果为WA,故居中显示WA,左边留44 像素空格。

样例第三行需要居中显示TLE,左边同样留44 像素空格。

样例第四行这支队伍是全场第一个通过10031003 的,故在AC后加上字符∗ 来特殊标注。

请写一个程序,对于每条评测记录产生直播信息。Input第一行包含一个正整数T(1T1000)T(1≤T≤1000) ,表示评测记录的数量。

接下来TT 行,每行首先是一个正整数rank(1rank400)rank(1≤rank≤400) ,表示队伍的排名。

接下来一个长度不超过1616 的字符串SS ,表示队名,SS 仅由大小写字母、数字以及下划线"_"组成。

接下来一个正整数prob(1001prob1013)prob(1001≤prob≤1013) ,表示题号。

接下来一个字符串T(T{Running,AC,WA,TLE,MLE,RTE,CE,OLE,PE,FB})T(T∈{Running,AC,WA,TLE,MLE,RTE,CE,OLE,PE,FB}) ,表示评测状态,除RunningRunning 外均表示评测结束。若为RunningRunning ,则还会输入一个正整数p(1p9)p(1≤p≤9) ,表示已经通过了p×10%p×10% 的测试点。若为FBFB ,则表示全场第一个通过该题,应显示ACAC∗ 。
Output对于每条评测记录,按要求输出一行一个长度为3838 的字符串,即直播显示效果。Sample Input

5
19 qqqqq_University 1001 Running 3
125 quailty_U_2 1002 WA
4 quailty_U_3 1003 TLE
1 quailty_U_4 1003 FB
2 qqqqq 1001 AC

Sample Output

 19|qqqqq_University|1001|[XXX       ]
125|quailty_U_2     |1002|[    WA    ]
  4|quailty_U_3     |1003|[    TLE   ]
  1|quailty_U_4     |1003|[    AC*   ]
  2|qqqqq           |1001|[    AC    ]
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
using namespace std;

int t, ran, prob, p;
string s, T;

int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d", &ran);
        cin>>s;
        int len = s.size();
        if(len<16)
            for(int i = len; i<16; i++)
                s += " ";
        scanf("%d", &prob);
        cin>>T;
        string miao, si;
//        char miao[18];
        if(T == "Running")
        {
            scanf("%d", &p);
            for(int i = 0; i<p; i++)
                miao += "X";//后面输出空格
            for(int i = p; i<10; i++)
                miao += " ";
            }
        else if(T == "FB")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "AC*";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T == "TLE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "TLE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T == "AC")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "AC";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "WA")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "WA";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "MLE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "MLE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "RTE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "RTE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "CE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "CE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "OLE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "OLE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        else if(T== "PE")
        {
            for(int i = 0; i<4; i++)
                si += " ";
            si += "PE";
            int le = si.size();
            for(int i = le; i<10; i++)
                si +=" ";
        }
        if(ran/100 == 0)//输出排名
        {
            printf(" ");
            if(ran/10 == 0)
                printf(" ");
        }
        printf("%d|", ran);
        cout<<s<<"|";
        printf("%d|[", prob);
        if(T == "Running")//输出状态
        {
            cout<<miao<<"]"<<'\n';
        }
        else
        {
            cout<<si<<"]"<<'\n';
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/RootVount/p/10886906.html