50pts求助
查看原帖
50pts求助
561313
orange_dusk楼主2023/4/29 14:16
#include<bits/stdc++.h>
using namespace std;
const long long MOD=998244353;
long long n,m,a[1000001],ans,f[1000001],id,sumf,sumz,sum;
int main()
{
	cin>>n>>m;
	for(long long i=1;i<=n;i++)
	{
		cin>>a[i];
		if(a[i]>=0)
		    sum+=a[i];
	    if(a[i]>=0&&id==0)
	    	id=i;
	    sum%=MOD; 
	}
	for(long long i=1;i<=n;i++)
	    ans+=((a[i]+1)%MOD)*((a[i]+1)%MOD),ans%=MOD;
	for(long long i=1;i<id;i++)
	    sumf+=((a[i]+1)%MOD)*((a[i]+1)%MOD),sumf%=MOD;
	for(long long i=id;i<=n;i++)
	    sumz+=a[i]*a[i],sumz%=MOD;
	for(long long i=2;i<=m;i++)
		ans+=((sumf+sumz)%MOD+((i*2)%MOD*sum)%MOD+((i*i)%MOD)*(n-id+1)%MOD),ans%=MOD;
	cout<<ans<<endl;
 	return 0;
}
2023/4/29 14:16
加载中...