![爆零](https://static1.cxy61.com/bcgame_face2face/9308/58b07ba2849ad916a36ec3974a210511_v.gif-400x225)
心态崩,
by IDNo1 @ 2023-08-06 21:58:15
不开longlong见祖宗?
by 聊机 @ 2023-08-06 22:05:13
@[聊机](/user/290959) 不是
by IDNo1 @ 2023-08-06 22:10:30
@[IDNo1](/user/777131) 你这明显就少一个数组
by 聊机 @ 2023-08-06 22:30:49
@[IDNo1](/user/777131) 我自己写了一下,你看看。
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline int qr() {
int k=0;char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))k=k*10+(ch^48),ch=getchar();
return k;
}
const int N=2e5+2;
const int mod=19260817;
int n,m;
ll d[N],s[N],s1[N];
inline ll c1(int l,int r,int x) {
if(l>r) return 0;
return ((-(s1[r]-s1[l-1])+(d[x])*(s[r]-s[l-1])%mod)%mod+mod)%mod;
}
inline ll c2(int l,int r,int x) {
if(l>r) return 0;
return (((s1[r]-s1[l-1])+(-d[x])*(s[r]-s[l-1])%mod)%mod+mod)%mod;
}
int main() {
n=qr(),m=qr();
for(int i=2;i<=n;i++) d[i]=(d[i-1]+qr())%mod;
for(int i=1;i<=n;i++) s[i]=(s[i-1]+qr())%mod;
for(int i=2;i<=n;i++) s1[i]=(s1[i-1]+d[i]*(s[i]-s[i-1]))%mod;
int x,l,r;
while(m--) {
x=qr(),l=qr(),r=qr();
if(x>=l&&x<=r) printf("%lld\n",(c1(l,x-1,x)+c2(x+1,r,x))%mod);
else if(x>r) printf("%lld\n",c1(l,r,x));
else printf("%lld\n",c2(l,r,x));
}
return 0;
}
```
by 聊机 @ 2023-08-06 22:51:58
可能是mod的问题吧
by dry_ @ 2024-03-05 20:20:34
我就是被mod卡了好久
by dry_ @ 2024-03-05 20:20:57