/*三种情况:
第一种是只有一种卡牌,输出不可能即可。
第二种是只有一种卡牌个数为a不为1,其他均为以,这时只需要保证让剩下的卡牌均为1即可,即输出a-1即可。
第三种是有多种卡牌个数不为1,这是只要保证最多的卡牌全部找出来即可。
*/
#include <stdio.h>
int main() {
int t;
scanf("%d", &t);
for (int i = 0; i < t; i++) {
int n;
scanf("%d", &n);
int arr[n];
int max = 0;
int count = 0; //卡牌个数为1的数量
for (int j = 0; j < n; j++) {
scanf("%d", &arr[j]);
if (arr[j] == 1)count++;
max = fmax(max, arr[j]);//种类最多的卡牌
}
if (n == 1) {
printf("-1\n");
continue;
}
if (count == n - 1) {
printf("%d\n", max - 1);
} else {
printf("%d\n", max);
}
}
}
#c

京公网安备 11010502036488号