#include <bits/stdc++.h>
using namespace std;
int a[150005],f[400][150005];
int main() {
int n,m;
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++) {
scanf("%d",a+i);
for(int j=1; j*j*j<=n; j++) {
f[j][i%j]+=a[i];
}
}
char cmd;
int x,y;
for(int i=1; i<=m; i++) {
cin>>cmd>>x>>y;
if(cmd=='A') {
if(x*x*x<=n) {
printf("%d\n",f[x][y]);
} else {
int ans=0;
for(int j=y; j<=n; j+=x) {
ans+=a[j];
}
printf("%d\n",ans);
}
}
if(cmd=='C') {
for(int j=1; j*j*j<=n; j++) f[j][x%j]+=(y-a[x]);
a[x]=y;
}
}
return 0;
}
RT,按题目要求模数是在15万的范围内的,我这里用立方计算,没开 long long
也给我过了。