ACM訓練題-第二期訓練題鉑金鑽石組-第一題
原題連結:http://acm.hdu.edu.cn/showproblem.php?pid=6292
Time limit1000 msMemory limit512000 kB
著名出題人小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 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.
實驗思路:建立一個函式,能夠選出程式碼最少的那個資料。t次迴圈,輸入m個數據,選出最少,根據格式輸出。同理n,選最少,當
n為0,輸出N/A。
輸出時先輸出第幾題,再按格式輸出。
不知道為啥;ac不了
#include<iostream>
#define INF 1000000
using namespace std;
void a(int n)
{
int i,j;
j = INF;
while (n--)
{
cin >> i;
j = i < j ? i : j;
}
if (j == INF)
{
cout << "N/A";
}
else cout << j;
}
int main()
{
int t,m,n;
cin >> t;
for (int i = 0; i < t; i++)
{
cin >> m >> n;
cout << "problem " << i + 1001 << ":" << endl;
cout << "Shortest judge solution: ";
a(m);
cout << " bytes." << endl;
cout << "Shortest team solution: ";
a(n);
cout << " bytes." << endl;
}
return 0;
}