题解 | 预知
预知
https://www.nowcoder.com/practice/d9dd8fb2f4ca4385b3728b7bf9c9d0a4
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int a[N]; void solve() { int n; cin >> n; for (int i = 1; i <= n; i ++ ) cin >> a[i]; if (n == 1) { cout << -1 << endl; return ; } int mx = -1; for (int i = 1; i <= n; i ++){ mx = max(mx, a[i]); } if (mx == 1) cout << 0 << endl; else { int cnt = 0; for (int i = 1; i <= n; i ++ ) { if (a[i] > 1) cnt ++; } if (cnt == 1) cout << mx - 1 << endl; else cout << mx << endl; } } int main(){ int T; cin >> T; while (T -- ) solve(); return 0; }