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
ios

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;
}
相關文章
相關標籤/搜索