void add_l(long long x){
cnt[a[x]]++;
if(a[x]%4==0){
num1[a[x]/4]+=cnt[a[x]/2];
sum+=num2[a[x]/4];
}
if(a[x]%2==0){
num2[a[x]/2]+=cnt[a[x]/2*3];
}
}
void add_r(long long x){
cnt[a[x]]++;
if(a[x]%2==0){
num1[a[x]/2]+=cnt[a[x]*2];
}
if(a[x]%3==0){
num2[a[x]/3]+=cnt[a[x]/3*2];
sum+=num1[a[x]/3];
}
}
void del_l(long long x){
cnt[a[x]]--;
if(a[x]%4==0){
num1[a[x]/4]-=cnt[a[x]/2];
sum-=num2[a[x]/4];
}
if(a[x]%2==0){
num2[a[x]/2]-=cnt[a[x]/2*3];
}
}
void del_r(long long x){
cnt[a[x]]--;
if(a[x]%2==0){
num1[a[x]/2]-=cnt[a[x]*2];
}
if(a[x]%3==0){
num2[a[x]/3]-=cnt[a[x]/3*2];
sum-=num1[a[x]/3];
}
}
void add_l(long long x){
cnt[a[x]]++;
if(!a[x]%4){
num1[a[x]/4]+=cnt[a[x]/2];
sum+=num2[a[x]/4];
}
if(!a[x]%2){
num2[a[x]/2]+=cnt[a[x]/2*3];
}
}
void add_r(long long x){
cnt[a[x]]++;
if(!a[x]%2){
num1[a[x]/2]+=cnt[a[x]*2];
}
if(!a[x]%3){
num2[a[x]/3]+=cnt[a[x]/3*2];
sum+=num1[a[x]/3];
}
}
void del_l(long long x){
cnt[a[x]]--;
if(!a[x]%4){
num1[a[x]/4]-=cnt[a[x]/2];
sum-=num2[a[x]/4];
}
if(!a[x]%2){
num2[a[x]/2]-=cnt[a[x]/2*3];
}
}
void del_r(long long x){
cnt[a[x]]--;
if(!a[x]%2){
num1[a[x]/2]-=cnt[a[x]*2];
}
if(!a[x]%3){
num2[a[x]/3]-=cnt[a[x]/3*2];
sum-=num1[a[x]/3];
}
}
只是把判整除从 …%…==0 —> !…%…
100pts —> 0pts
本蒟蒻写了好几道莫队题都是这种**错误调不出来