**赛题分析**
著名出题人小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=0则该行为空行。
Output
对于第i(1≤i≤T)i(1≤i≤T)道题,输出三行,第一行输出Problem xx:,其中x=i+1000x=i+1000。 第二行输出Shortest judge solution: yy bytes.,其中yy表示最短的验题人代码字节数。 第三行输出Shortest team solution: zz bytes.,其中zz表示最短的选手代码字节数,若不存在请输出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.
题目分析:
这道题的思路很简单,就是开两个数组接收数据并且分别排好序,取最小即可。这里需要注意的当AC队伍为零的时候输出的是 ‘ Shortest team solution: N/A bytes. ’ ,所以每次都有判断输入的AC队伍数为不为零。
AC代码:
#include
#include
using namespace std;
int main()
{
int T, n, m[15], i,j,k,t, a[30], b[600],a1[30];
cin >> T;
for (i = 0; i < T; i++)
{
cin >> n >> m[i];
for (j = 0; j < n; j++)
cin >> a[j];
sort(a, a + j);
a1[i] = a[0];
for (k = 0; k < m[i]; k++)
cin >> b[k];
sort(b, b + k);
a1[15 + i] = b[0];
}
for (t = 0; t < T; t++)
{
cout << "Problem" <<" "<<1001+t<<":" << endl;
cout << "Shortest judge solution:" << " ";
cout<< a1[t] << " " << "bytes." << endl;
if (m[t] == 0)
{
cout << "Shortest team solution:" << " ";
cout << "N/A" << " " << "bytes." << endl;
}
else
cout << "Shortest team solution:" << " ";
cout<< a1[15 + t] << " " << "bytes." << endl;
}
return 0;
}