题目描述
给出个数,求出这个数中最大值和次大值。注意这里的次大值必须严格小于最大值。输入保证个数中至少存在两个不同的数。
输入格式
第一行为测试数据的组数。请注意,任意两组测试数据之间是相互独立的。
每组数据包括两行:
第一行为一个整数。
第二行为个正整数,每个整数均不大于。
输出格式
每组数据输出两个数,即个数的最大值和次大值,中间用空格隔开。
输入样例
2
5
1 2 3 4 5
4
2 2 2 3
输出样例
5 4
3 2
#include <iostream>
#include <queue>
#include <cstdio>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
priority_queue<int, vector<int>, less<int> >q;
int n;
scanf("%d", &n);
while(n--)
{
int x;
scanf("%d", &x);
q.push(x);
}
printf("%d ",q.top());
q.pop();
printf("%d\n",q.top());
}
return 0;
}