为什么我这样写 C 会 WA
  • 板块学术版
  • 楼主Tomwsc
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/6/28 21:41
  • 上次更新2025/6/28 21:56:06
查看原帖
为什么我这样写 C 会 WA
1418967
Tomwsc楼主2025/6/28 21:41
#include<bits/stdc++.h>
#define int long long
#define inf (1ll << 62)
#define pb push_back
#define mp make_pair
#define PII pair<int , int>
#define fi first
#define se second
using namespace std;
const int MAXN = 2e5 + 10;

inline void solve() {
	int n;
	cin >> n;
	vector<int>s(n + 2);
	s[n + 1] = inf;
	for(int i = 1;i <= n;i ++) cin >> s[i];
	if(s[1] * 2 >= s[n]) {
		cout << 2 << '\n';
		return;
	}
	if(n == 2) {
		if(s[1] * 2 >= s[n]) {
			cout << 2 << '\n';
		} else {
			cout << -1 << '\n';
		}
		return;
	}
	sort(s.begin() + 2 , s.end() - 2);
	int ans = 1;
	for(int i = 1;i < n;i ++) {
		int k = -1;
		for(int j = i + 1;j <= n;j ++) {
			if(s[j] <= s[i] * 2 && s[j + 1] > s[i] * 2) {
				k = j;
				break;
			}
		}
		if(k == -1) {
			cout << -1 << '\n';
			return;
		}
		ans ++;
		i = k - 1;

	}
	cout << ans << '\n';
	return;
}

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t = 1;
	cin >> t;
	while(t --) {
		solve();
	}
	return 0;
}
2025/6/28 21:41
加载中...