50pts,求hack
查看原帖
50pts,求hack
550579
GSRgsrgsr楼主2022/10/23 12:37
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=998244353; 
const int MAXN=1e6+5;
int a[MAXN];
signed main(){
	int n,k,sum1=0,sum2=0,sum3=0,ans=0,cnt=0; 
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=n;++i){
		scanf("%lld",&a[i]);
		if(a[i]<0)sum1=(sum1+(a[i]+1)*(a[i]+1))%mod;
		else{
			sum2=(sum2+a[i]*a[i])%mod;
			sum3=(sum3+a[i])%mod;
			cnt++;
		}
	}
	for(int i=1;i<=k;++i){
		int v1=(2*i*sum3)%mod,v2=(cnt*(i*i)%mod)%mod;
		ans=(ans+v1+v2+sum2+sum1)%mod;
	}
	printf("%lld",ans);
	return 0;
}
/*
(a1+i)^2+(a2+i)^2+(an+i)^2
=a1^2+2*a1*i+i^2+a2^2+2*a2*i+i^2+an^2+2*an*i+i^2
=a1^2+a2^2+an^2+2*i*(a1+a2+an)+n*i^2
*/
2022/10/23 12:37
加载中...