著名出题人小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 xx
:,其中x=i+1000x=i+1000
。
第二行输出Shortest judge solution: yy
bytes.,其中yy
表示最短的验题人代码字节数。
第三行输出Shortest team solution: zz
bytes.,其中zz
表示最短的选手代码字节数,若不存在请输出N/A。
注意:间隔都是一个空格。Sample Input2
3 2
3627 1460 5288
2365 2671
2 0
5510 7682Sample OutputProblem 1001:
Shortest judge solution: 1460 bytes.
Shortest team solution: 2365 bytes.
Problem 1002:
Shortest judge solution: 5510 bytes.
Shortest team solution: N/A bytes.
问题链接https://vjudge.net/contest/274223#status/18718371183/G/0/
问题分析:理解题意后知道可以用两个数组来储存信息,然后就再对两个数组进行排序可以用到函数sort()但必须包含头文件#include
AC代码如下#include <iostream> #include<algorithm> using namespace std; int main() { int t, n, m, a[1000],b[1000]; cin >> t; for (auto i = 0; i < t; i++) { cin >> n >> m; for (auto k = 0; k < n; k++)cin >> a[k]; if (m != 0) { for (auto k = 0; k < m; k++)cin >> b[k]; sort(b, b + m); } sort(a, a + n); cout << "Problem " << i+1001 <<":"<< endl; if (n != 0)cout << "Shortest judge solution: " << a[0] << " bytes.\n"; else cout << "Shortest judge solution: N/A bytes.\n"; if (m != 0)cout << "Shortest team solution: " << b[0] << " bytes.\n"; else cout << "Shortest team solution: N/A bytes.\n"; } }