大样例过了
#include<bits/stdc++.h>
#define mod 998244353
#define ll long long
using namespace std;
ll a[1000005],m;
ll ksm(ll A,ll b,ll c){
ll ans=1;
while(b){
if(b&1){
ans=ans*A%c;
}
A=A*A%c;
b>>=1;
}
return ans;
}
ll hs(ll x){
return x*(x+1)%mod*(2*x+1)%mod*ksm(6,mod-2,mod)%mod;
}
int main(){
ll n,fir=1;
scanf("%lld%lld",&n,&m);
for(ll i=1;i<=n;i++){
scanf("%lld",&a[i]);
if(a[i]>0&&a[i-1]<=0)fir=i;
}
if(a[1]>0){
ll sum=0;
for(ll i=1;i<=n;i++){
sum+=hs(a[i]+m)-hs(a[i]);
sum=(sum+mod)%mod;
}
cout<<(sum+mod)%mod;
return 0;
}
else if(a[n]<0){
ll sum=0;
for(ll i=1;i<=n;i++){
sum+=hs(-a[i]+m-1)-hs(-a[i]-1);
sum%=mod;
}
cout<<sum;
return 0;
}
ll sum=0;
for(int i=1;i<fir;i++){
sum+=m*((a[i]+1)*(a[i]+1)%mod)%mod;
}
for(int i=fir;i<=n;i++){
sum+=hs(a[i]+m)-hs(a[i]);
sum=(sum+mod)%mod;
}
cout<<sum;
return 0;
}