为什么这样写第 1 个点会 WA?
查看原帖
为什么这样写第 1 个点会 WA?
671013
KawaragiMomoka楼主2024/10/20 14:22
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll maxn = 1e5 + 5;
ll n;
ll arr[maxn];

int main() {
	scanf("%lld", &n);
	for (ll i = 1; i <= n; i++) {
		ll len, mark;
		scanf("%lld%lld", &len, &mark);
		arr[i] = max(mark, len - mark);
	}
	sort(arr + 1, arr + 1 + n);
	printf("%lld", arr[n - 1] + arr[n]);
	return 0;
}
                         

改成这样就不会

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll maxn = 1e5 + 5;
ll n;
ll arr[maxn << 1];
ll idcnt;

int main() {
	scanf("%lld", &n);
	for (ll i = 1; i <= n; i++) {
		ll len, mark;
		scanf("%lld%lld", &len, &mark);
		arr[++idcnt] = mark, arr[++idcnt] = len - mark;
	}
	sort(arr + 1, arr + 1 + idcnt);
	printf("%lld", arr[idcnt - 1] + arr[idcnt]);
	return 0;
}

2024/10/20 14:22
加载中...