Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 1337 Accepted Submission(s): 550php
在比特镇举行的中国大学生程序设计竞赛CCPC(China Collegiate Programming Contest)开始啦!此次比赛中加入了现场视频直播,而在直播屏幕的左下角,会显示评测队列。ios
比特镇的科技水平并不发达,直播分辨率并不高。准确地说,每一个评测记录将被显示在1行38列的像素格上。一条评测记录由4个部分组成,从左往右依次为排名(3像素),队名(16像素),题号(4像素),评测状况(12像素)。相邻两个部分之间由1像素的分隔线|分开。其中,排名右对齐显示,队名左对齐显示,长度不足时用空格补齐。题号必定是4位正整数,所以刚好占据4像素。评测状况则比较复杂,它由两侧的括号[]以及中间10像素组成。markdown
样例第一行表示排名第19的队伍qqqqq_University提交了题目1001,已经经过了30%的测试点,故左对齐显示3个X。编辑器
样例第二行表示排名第125的队伍quailty_U_2提交了题目1002,评测结果为WA,故居中显示WA,左边留4像素空格。测试
样例第三行须要居中显示TLE,左边一样留4像素空格。spa
样例第四行这支队伍是全场第一个经过1003的,故在AC后加上字符∗来特殊标注。设计
请写一个程序,对于每条评测记录产生直播信息。code
第一行包含一个正整数T(1≤T≤1000),表示评测记录的数量。视频
接下来T行,每行首先是一个正整数rank(1≤rank≤400),表示队伍的排名。队列
接下来一个长度不超过16的字符串S,表示队名,S仅由大小写字母、数字以及下划线"_"组成。
接下来一个正整数prob(1001≤prob≤1013),表示题号。
接下来一个字符串T(T∈{Running,AC,WA,TLE,MLE,RTE,CE,OLE,PE,FB}),表示评测状态,除Running外均表示评测结束。若为Running,则还会输入一个正整数p(1≤p≤9),表示已经经过了p×10%的测试点。若为FB,则表示全场第一个经过该题,应显示AC∗。
对于每条评测记录,按要求输出一行一个长度为38的字符串,即直播显示效果。
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
.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 ]
liuyiding | We have carefully selected several similar problems for you: 6447 6446 6445 6444 6443
根据题目进行模拟就好,输出那部分因为 markdown 编辑器我不知道咋弄= =,因此用..代替了。代码以下:
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> using namespace std ; char ch[5] = { ' ' , '|' , '[' , ']' , 'X' } ; string str = "AC*" ; int main(){ int t ; cin >> t ; while ( t -- ){ int problem_num ; string team_rank , team_name , state ; cin >> team_rank >> team_name >> problem_num >> state ; if ( state == "Running" ){ int point_num ; cin >> point_num ; for ( int i = 0 ; i < 3 - team_rank.size() ; i ++ ){ cout << ch[0] ; } cout << team_rank << ch[1] << team_name ; for ( int i = 0 ; i < 16 - team_name.size() ; i ++ ){ cout << ch[0] ; } cout << ch[1] << problem_num << ch[1] << ch[2] ; for ( int i = 0 ; i < point_num ; i ++ ){ cout << ch[4] ; } for ( int i = 0 ; i < 10 - point_num ; i ++ ){ cout << ch[0] ; } cout << ch[3] << endl ; }else{ for ( int i = 0 ; i < 3 - team_rank.size() ; i ++ ){ cout << ch[0] ; } cout << team_rank << ch[1] << team_name ; for ( int i = 0 ; i < 16 - team_name.size() ; i ++ ){ cout << ch[0] ; } cout << ch[1] << problem_num << ch[1] << ch[2] ; for ( int i = 0 ; i < 4 ; i ++ ){ cout << ch[0] ; } if ( state == "FB" ){ cout << str ; for ( int i = 0 ; i < 6 - str.size() ; i ++ ){ cout << ch[0] ; } cout << ch[3] << endl ; } else { cout << state ; for ( int i = 0 ; i < 6 - state.size() ; i ++ ){ cout << ch[0] ; } cout << ch[3] << endl ; } } } return 0 ; }