游客 Signup | Login
中文 | En

1801 - 求最值

设计一个从m个整数中取最小数和最大数的程序

Input

第一行输入一个整数n(0<n<=100000),表示有n组数据;

随后n组数据中,每组数据输入一个整数m(0<m<=100),代表该组数据个数,其后一行输入m个整数,空格分隔。

 

Output

输出两个数,第一个为这m个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。

Examples

Input

3
2
1 2
3
4 5 6
5
1 5 9 3 7

Output

1 2
4 6
1 9

Hint

当然,这道题也可以用排序来做。不过我们要求的只是最大值与最小值两个值而已,用排序太浪费了。

Solution C

#include <stdio.h>
int main(){
    int n, m, i, t, max, min;
    scanf("%d",&n);
    while(n--){
        scanf("%d",&m);
        scanf("%d", &t);
        max=min=t;
        for(i = 1; i < m; i++){
            scanf("%d", &t);
            if(max < t) max = t;
            if(min > t) min = t;
        }
        printf("%d %d\n", min, max);
    }
    return 0;
}

Solution C++

#include<iostream>
using namespace std;
int main(){
	int n,a[100];
	cin>>n;
	while(n--){
		int m,max,min;
		cin>>m;
		for(int i=0;i<m;i++)
			cin>>a[i];
		max=min=a[0];
		for(int j=1;j<m;j++){
			if(a[j]<min)
				min=a[j];
			if(a[j]>max)
				max=a[j];
		}
		cout<<min<<" "<<max<<endl;
	}
}

Hint

当然,这道题也可以用排序来做。不过我们要求的只是最大值与最小值两个值而已,用排序太浪费了。

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题