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 개 를 넘 지 않 기 때문이다.하지만 선수 코드 길 이 를 집계 하 는 것 은 쉽 지 않다. 대회 지역 에 서 는 툭하면 300 개 팀 이 있 기 때문이다.
작은 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 
#include 
#include 
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:
"
, problem++) ; printf("Shortest judge solution: %d bytes.
"
, min_byte_one) ; printf("Shortest team solution: N/A bytes.
"
) ; continue ; } printf("Problem %d:
"
, problem++) ; printf("Shortest judge solution: %d bytes.
"
, min_byte_one) ; printf("Shortest team solution: %d bytes.
"
, min_byte_two) ; } return 0 ; }

좋은 웹페이지 즐겨찾기