1. 程式人生 > >HDU 6292 賽題分析

HDU 6292 賽題分析

賽題分析

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)
Total Submission(s): 862    Accepted Submission(s): 503

Problem Description

著名出題人小Q每次比賽後都會寫一份《賽題分析》,包含比賽概況、每題的參考演算法以及一些統計數值。

對於一道題來說,小Q會統計最短的驗題人程式碼長度(Shortest judge solution)以及賽內參賽隊伍最短的AC程式碼長度(Shortest team solution)。

統計驗題人程式碼長度比較容易,因為驗題人最多也不會超過20個。但是統計選手程式碼長度就不容易了,因為大賽區動輒三四百支隊伍。

請寫一個程式,幫助小Q統計最短程式碼長度。

Input

第一行包含一個正整數T(1≤T≤13),表示賽題數量。

每道題第一行包含兩個整數n,m(2≤n≤20,0≤m≤500),分別表示驗題人數量以及AC了該題的隊伍數量。

第二行包含n個正整數a1,a2,...,an(50≤ai≤65536),依次表示每個驗題人的程式碼位元組數。

第三行包含m個正整數b1,b2,...,bn(50≤bi≤65536),依次表示每支AC隊伍的程式碼位元組數。若m=0則該行為空行。

Output

對於第i(1≤i≤T)道題,輸出三行,第一行輸出Problem x:,其中x=i+1000。

第二行輸出Shortest judge solution: y bytes.,其中y表示最短的驗題人程式碼位元組數。

第三行輸出Shortest team solution: z bytes.,其中z表示最短的選手程式碼位元組數,若不存在請輸出N/A。

注意:間隔都是一個空格。

Sample Input

2 3 2 3627 1460 5288 2365 2671 2 0 5510 7682

Sample Output

Problem 1001: Shortest judge solution: 1460 bytes. Shortest team solution: 2365 bytes. Problem 1002: Shortest judge solution: 5510 bytes. Shortest team solution: N/A bytes.

Source

"位元組跳動杯"2018中國大學生程式設計競賽-女生專場

Recommend

liuyiding

題解

根據題意模擬。程式碼如下:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std ;

int main(){
    int problem = 1001 ;
    int t ;
//    cin >> t ;
    scanf("%d" , &t) ;
    while( t -- ){
        int n , m ;
//        cin >> n >> m ;
        scanf("%d %d" , &n , &m) ;
        bool check_N = false ;
        if ( m == 0 ){
            check_N = true ;
        }
        int min_byte_one =  100000 ;
        int min_byte_two = 100000 ;
        for ( int i = 0 ; i < n ; i ++ ){
            int x ;
//            cin >> x ;
            scanf("%d" , &x) ;
            min_byte_one = min( min_byte_one , x ) ;
        }
        if ( !check_N ){
            for ( int i = 0 ; i < m ; i ++ ){
                int x ;
//                cin >> x ;
                scanf("%d" , &x) ;
                min_byte_two = min( min_byte_two , x ) ;
            }
        }else{
            printf("Problem %d:\n" , problem++) ;
            printf("Shortest judge solution: %d bytes.\n" , min_byte_one) ;
            printf("Shortest team solution: N/A bytes.\n") ;
            continue ;
        }
            printf("Problem %d:\n" , problem++) ;
            printf("Shortest judge solution: %d bytes.\n" , min_byte_one) ;
            printf("Shortest team solution: %d bytes.\n" , min_byte_two) ;
    }
    return 0 ;
}