HDU-6297 CCPC直播 (输出格式的处理)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chimchim04/article/details/90064744

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(1≤T≤1000)T(1≤T≤1000),表示评测记录的数量。 

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

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

接下来一个正整数prob(1001≤prob≤1013)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(1≤p≤9)p(1≤p≤9),表示已经通过了p×10%p×10%的测试点。若为FBFB,则表示全场第一个通过该题,应显示AC∗AC∗。

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    ]

题目大意:根据题目给的格式,输出信息

思路:注意输出的格式的处理

iomanip是I/O流控制头文件,有一些比较方便的操作,可以了解一下

setw(n) 设域宽为n个字符   

setiosflags(ios::left) 左对齐

setiosflags(ios::right) 右对齐

代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        string na,st;
        int ran,pro,x;
        cin>>ran>>na>>pro>>st;
        if(st=="Running")
        {
            cin>>x;
            st="";
            for(int i=0;i<x;i++) st+='X';
        }
        else if(st=="FB")
            st="AC*";
        cout<<right<<setw(3)<<ran<<"|";
        cout<<left<<setw(16)<<na<<"|";
        cout<<pro<<"|[";
        if(st[0]=='X') cout<<left<<setw(10)<<st<<"]"<<endl;
        else cout<<"    "<<left<<setw(6)<<st<<"]"<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/chimchim04/article/details/90064744