铂金组第一题

著名出题人小Q每次比赛后都会写一份《赛题分析》,包含比赛概况、每题的参考算法以及一些统计数值。

对于一道题来说,小Q会统计最短的验题人代码长度(Shortest judge solution)以及赛内参赛队伍最短的AC代码长度(Shortest team solution)。

统计验题人代码长度比较容易,因为验题人最多也不会超过2020个。但是统计选手代码长度就不容易了,因为大赛区动辄三四百支队伍。

请写一个程序,帮助小Q统计最短代码长度。
Input
第一行包含一个正整数T(1≤T≤13)T(1≤T≤13),表示赛题数量。

每道题第一行包含两个整数n,m(2≤n≤20,0≤m≤500)n,m(2≤n≤20,0≤m≤500),分别表示验题人数量以及AC了该题的队伍数量。

第二行包含nn个正整数a1,a2,...,an(50≤ai≤65536)a1,a2,...,an(50≤ai≤65536),依次表示每个验题人的代码字节数。

第三行包含mm个正整数b1,b2,...,bn(50≤bi≤65536)b1,b2,...,bn(50≤bi≤65536),依次表示每支AC队伍的代码字节数。若m=0m=0则该行为空行。
Output
对于第i(1≤i≤T)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.

对题目进行分析
即对多组数据分别求最小值并按要求输出

for(int i=1;i<=T;i++)

现在main函数里使用for语句,循环次数为题目数量,每次循环输入验题人和选手AC的代码数量
定义一个select函数
在select函数里完成代码长度的输入、最小代码长度的判断和输出,
队伍数量最多为500,所以定义一个数组a[500],将代码长度逐次输入数组,
比较大小,输出。

#include
using namespace std;
void select(int n)
{
    if(n==0)
        cout << "N/A bytes."<> a[i];
        }
        int min = a[0];
        for (int i = 0;i < n;i++)
        {
            if (min > a[i])
                min = a[i];
        }
        cout << min << " bytes." << endl;
    }
    
}
int main()
{
    int T;cin >> T;
    for(int i=1;i<=T;i++)
    {
        int n, m;
        cin >> n >> m;  
        int x = i + 1000;
        cout << "Problem " << x<<":"<

你可能感兴趣的:(铂金组第一题)