CCPC直播(字符串模拟)

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

比特镇的科技水平并不发达,直播分辨率并不高。准确地说,每个评测记录将被显示在 113838列的像素格上。一条评测记录由 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
#include
using namespace std;

struct Node{
    int ran; int lenran;
    string name; int lenname;
    int pro;
    string run;
    int num;
}a[1010];


int main()
{
    int T;
    cin>>T;
    for(int i=0;i>a[i].ran>>a[i].name>>a[i].pro>>a[i].run;
        if(a[i].run=="Running") cin>>a[i].num;
        int x1=a[i].ran;
        a[i].lenran=0;
        a[i].lenname=a[i].name.size();
        while(x1){
            x1/=10;
            a[i].lenran++;
        }
    }

    for(int i=0;i



你可能感兴趣的:(CCPC直播(字符串模拟))