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 ; }