AC×32,WA×8(05_,07_)。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using std::cin;using std::cout;
constexpr int N=200005,B=505;
int n,q,op[N],a[N],b[N],x[N],y[N],c[N<<1],base,k,d[N],e[N];
long long num[B],sum[B];
signed main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
std::ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n;
for(int i=1;i<=n;++i){cin>>a[i]>>b[i];c[++k]=a[i];}
cin>>q;
for(int i=1;i<=q;++i){
cin>>op[i]>>x[i];
if(op[i]<=2) cin>>y[i];
if(op[i]==1) c[++k]=y[i];
}
std::sort(c+1,c+k+1);
k=std::unique(c+1,c+k+1)-c-1;
base=sqrt(k);
for(int i=1;i<=n;++i){
int p=std::lower_bound(c+1,c+k+1,a[i])-c;
num[(p-1)/base]+=b[i];
sum[(p-1)/base]+=1ll*a[i]*b[i];
e[p]+=b[i];
}
for(int i=1;i<=q;++i){
// for(int j=1;j<=k;++j) cout<<c[j]<<(j==k?'\n':' ');
// for(int j=1;j<=k;++j) cout<<e[j]<<(j==k?'\n':' ');
if(op[i]==1){
int p=std::lower_bound(c+1,c+k+1,a[x[i]])-c;
num[(p-1)/base]-=b[x[i]];
sum[(p-1)/base]-=1ll*a[x[i]]*b[x[i]];
e[p]-=b[x[i]];a[x[i]]=y[i];
p=std::lower_bound(c+1,c+k+1,y[i])-c;
e[p]+=b[x[i]];
// cout<<p<<'\n';
num[(p-1)/base]+=b[x[i]];
sum[(p-1)/base]+=1ll*y[i]*b[x[i]];
}
if(op[i]==2){
int p=std::lower_bound(c+1,c+k+1,a[x[i]])-c;
num[(p-1)/base]+=y[i]-b[x[i]];e[p]+=y[i]-b[x[i]];
sum[(p-1)/base]+=1ll*a[x[i]]*y[i]-1ll*a[x[i]]*b[x[i]];
b[x[i]]=y[i];
}
if(op[i]==3){
long long val=0;
for(int j=(k-1)/base;j>=0;--j)
if(num[j]<x[i]){
// cout<<j<<' '<<x[i]<<' '<<val<<'\n';
x[i]-=num[j];
val+=sum[j];
}else{
for(int l=std::min((j+1)*base,k);l>=j*base+1;--l){
// cout<<l<<' '<<val<<'\n';
if(e[l]<x[i]){
x[i]-=e[l];
val+=1ll*c[l]*e[l];
}else{
val+=1ll*c[l]*x[i];
x[i]=0;
goto print;
}
}
}
print:
if(x[i]) cout<<"-1\n";
else cout<<val<<'\n';
}
}
return 0;
}