1. 程式人生 > >ACM訓練題-第二期訓練題鉑金鑽石組-第一題

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;
}