/*三种情况: 第一种是只有一种卡牌,输出不可能即可。 第二种是只有一种卡牌个数为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