关于ABC C 的玄学问题求助
查看原帖
关于ABC C 的玄学问题求助
555065
ChrysanthBlossom楼主2024/5/11 21:45

AC:

#include<bits/stdc++.h> 
#define ri register int
#define ll long long
#define ld long double
#define mkp make_pair
using namespace std;
const int maxn=3e5+7;
int n,k;
int a[maxn];
ll sum[maxn];
signed main(){
	ios::sync_with_stdio(0);
	cin>>n;
	for(ri i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+1+n);
	for(ri i=1;i<=n;i++){
		sum[i]=sum[i-1]+a[i];
//		cout<<sum[i]<<' ';
	}
	ll ans=0;
	for(ri i=1;i<=n;i++){
		ans+=sum[i-1];
		ans+=1ll*(i-1)*a[i];
		int pos=lower_bound(a+1,a+1+n,100000000-a[i])-a;
		ans-=1ll*(100000000)*(i-min(pos,i));
	}
	cout<<ans<<endl;
	return 0;
}

将 100000000 换成 1e8 就会 WA。

赛时瞪了半天自己的代码,抱着试一试的心理将 1e8 改成 100000000 ,然后就过了,对此表示十分疑惑。

2024/5/11 21:45
加载中...