Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
100454 | seanlsy | 早凉的程序2 | C++ | 解答错误 | 20 | 108 MS | 11972 KB | 676 | 2023-08-26 11:50:38 |
#include <bits/stdc++.h> using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); for(;ch<'0'||ch>'9';ch=getchar()) if(ch=='-') f=-1; for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+(ch&15); return f*x; } int n,m,p,a[1000006],l,r; long long t[1000006]; void Add(int x,int val){ for(;x<=n;x+=(x&(-x))) t[x]+=val; } long long query(int x){ long long sum=0; for(;x;x-=(x&(-x))) sum+=t[x]; return sum; } int main(){ n=read(),m=read(),p=read(); for(int i=1;i<=n;i++) a[i]=read(),Add(i,a[i]); while(m--) l=read(),r=read(),printf("%lld\n",a[1]>=p?query(r)-query(l-1)-1ll*(r-l+1)*p:(query(r)-query(l-1))%p); return 0; }