HDU 6297 CCPC直播

CCPC直播

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 1337    Accepted Submission(s): 550
php

Problem Description

在比特鎮舉行的中國大學生程序設計競賽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

Input

第一行包含一個正整數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∗。

Output

對於每條評測記錄,按要求輸出一行一個長度爲38的字符串,即直播顯示效果。

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 ]

Source

"字節跳動杯"2018中國大學生程序設計競賽-女生專場

Recommend

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