#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define MAX 100001LL
#define SMAX 262144LL
using namespace std;
typedef long long ll;
struct element
{
ll f;
ll m;
};
ll A[MAX];
element tree[SMAX];
ll fmid(ll a,ll b)
{
return(a+((b-a)/2LL));
}
void construct_tree(ll index,ll ss,ll se)
{
if(ss==se)
{
tree[index].f=A[ss];
tree[index].m=A[ss]*ss;
}
else
{
ll mid=fmid(ss,se);
construct_tree(2LL*index+1LL,ss,mid);
construct_tree(index*2LL+2LL,mid+1LL,se);
tree[index].f=tree[2LL*index+1LL].f+tree[2LL*index+2LL].f;
tree[index].m=tree[2LL*index+1LL].m+tree[2LL*index+2LL].m;
}
}
void update_tree(ll index,ll i,char ch,ll ss,ll se)
{
if(i>=ss && i<=se)
{
if(ch=='+')
{
tree[index].f++;
tree[index].m+=i;
}
else if(ch=='-')
{
tree[index].f--;
tree[index].m-=i;
}
if(ss!=se)
{
ll mid=fmid(ss,se);
update_tree(2LL*index+1LL,i,ch,ss,mid);
update_tree(2LL*index+2LL,i,ch,mid+1LL,se);
}
}
}
element query_tree(ll index,ll ss,ll se,ll qs,ll qe)
{
element temp,a,b;
temp.f=temp.m=0LL;
if(qe<ss || qs>se)
return temp;
if(ss>=qs && se<=qe)
return tree[index];
ll mid=fmid(ss,se);
a=query_tree(2LL*index+1LL,ss,mid,qs,qe);
b=query_tree(2LL*index+2LL,mid+1LL,se,qs,qe);
temp.f=a.f+b.f;
temp.m=a.m+b.m;
return temp;
}
int main()
{
element temp={0LL,0LL};
std::fill(tree,tree+SMAX,temp);
ll a,b,x,l,r,y,ans,s;
int m,n;
char ch;
cin>>n;
std::fill(A,A+MAX,0LL);
for(int i=1;i<=n;i++)
{
cin>>a>>b;
A[a]+=b;
}
construct_tree(0LL,0LL,MAX-1LL);
/*
printf("Tree:\n");
for(int i=0;i<SMAX;i++)
{
printf("(%d,%d) ",tree[i].f,tree[i].m);
}
printf("\n");
*/
cin>>m;
while(m--)
{
cin>>ch>>x;
if(ch=='+')
{
A[x]++;
update_tree(0LL,x,ch,0LL,MAX-1LL);
}
else if(ch=='-')
{
A[x]--;
update_tree(0LL,x,ch,0LL,MAX-1LL);
}
else if(ch=='?')
{
l=x+1LL;
r=MAX-1LL;
temp=query_tree(0LL,0LL,MAX-1LL,l,r);
ans=0LL;
ans+=(temp.f)*x;
//printf("ans at this stage: %d\n",ans);
y=1;
s=sqrt(x);
while(y<=s)
{
l=(x/(y+1LL))+1LL;
r=x/y;
if(l>=r)
break;
temp=query_tree(0LL,0LL,MAX-1LL,l,r);
ans+=temp.f*x-temp.m*y;
y++;
}
for(ll i=1LL;i<=(x/y);i++)
ans+=(x%i)*A[i];
cout<<ans<<endl;
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8Y3N0cmluZz4KI2RlZmluZSBNQVggMTAwMDAxTEwKI2RlZmluZSBTTUFYIDI2MjE0NExMCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpzdHJ1Y3QgZWxlbWVudAp7CiAgICBsbCBmOwogICAgbGwgbTsKfTsKbGwgQVtNQVhdOwplbGVtZW50IHRyZWVbU01BWF07CmxsIGZtaWQobGwgYSxsbCBiKQp7CiAgICByZXR1cm4oYSsoKGItYSkvMkxMKSk7Cn0Kdm9pZCBjb25zdHJ1Y3RfdHJlZShsbCBpbmRleCxsbCBzcyxsbCBzZSkKewogICAgaWYoc3M9PXNlKQogICAgewogICAgICAgIHRyZWVbaW5kZXhdLmY9QVtzc107CiAgICAgICAgdHJlZVtpbmRleF0ubT1BW3NzXSpzczsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBsbCBtaWQ9Zm1pZChzcyxzZSk7CiAgICAgICAgY29uc3RydWN0X3RyZWUoMkxMKmluZGV4KzFMTCxzcyxtaWQpOwogICAgICAgIGNvbnN0cnVjdF90cmVlKGluZGV4KjJMTCsyTEwsbWlkKzFMTCxzZSk7CiAgICAgICAgdHJlZVtpbmRleF0uZj10cmVlWzJMTCppbmRleCsxTExdLmYrdHJlZVsyTEwqaW5kZXgrMkxMXS5mOwogICAgICAgIHRyZWVbaW5kZXhdLm09dHJlZVsyTEwqaW5kZXgrMUxMXS5tK3RyZWVbMkxMKmluZGV4KzJMTF0ubTsKICAgIH0KfQp2b2lkIHVwZGF0ZV90cmVlKGxsIGluZGV4LGxsIGksY2hhciBjaCxsbCBzcyxsbCBzZSkKewogICAgaWYoaT49c3MgJiYgaTw9c2UpCiAgICB7CiAgICAgICAgaWYoY2g9PScrJykKICAgICAgICB7CiAgICAgICAgICAgIHRyZWVbaW5kZXhdLmYrKzsKICAgICAgICAgICAgdHJlZVtpbmRleF0ubSs9aTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjaD09Jy0nKQogICAgICAgIHsKICAgICAgICAgICAgdHJlZVtpbmRleF0uZi0tOwogICAgICAgICAgICB0cmVlW2luZGV4XS5tLT1pOwogICAgICAgIH0KICAgICAgICBpZihzcyE9c2UpCiAgICAgICAgewogICAgICAgICAgICBsbCBtaWQ9Zm1pZChzcyxzZSk7CiAgICAgICAgICAgIHVwZGF0ZV90cmVlKDJMTCppbmRleCsxTEwsaSxjaCxzcyxtaWQpOwogICAgICAgICAgICB1cGRhdGVfdHJlZSgyTEwqaW5kZXgrMkxMLGksY2gsbWlkKzFMTCxzZSk7CiAgICAgICAgfQogICAgfQp9CmVsZW1lbnQgcXVlcnlfdHJlZShsbCBpbmRleCxsbCBzcyxsbCBzZSxsbCBxcyxsbCBxZSkKewogICAgZWxlbWVudCB0ZW1wLGEsYjsKICAgIHRlbXAuZj10ZW1wLm09MExMOwogICAgaWYocWU8c3MgfHwgcXM+c2UpCiAgICAgICAgcmV0dXJuIHRlbXA7CiAgICBpZihzcz49cXMgJiYgc2U8PXFlKQogICAgICAgIHJldHVybiB0cmVlW2luZGV4XTsKICAgIGxsIG1pZD1mbWlkKHNzLHNlKTsKICAgIGE9cXVlcnlfdHJlZSgyTEwqaW5kZXgrMUxMLHNzLG1pZCxxcyxxZSk7CiAgICBiPXF1ZXJ5X3RyZWUoMkxMKmluZGV4KzJMTCxtaWQrMUxMLHNlLHFzLHFlKTsKICAgIHRlbXAuZj1hLmYrYi5mOwogICAgdGVtcC5tPWEubStiLm07CiAgICByZXR1cm4gdGVtcDsKfQppbnQgbWFpbigpCnsKICAgIGVsZW1lbnQgdGVtcD17MExMLDBMTH07CiAgICBzdGQ6OmZpbGwodHJlZSx0cmVlK1NNQVgsdGVtcCk7CiAgICBsbCBhLGIseCxsLHIseSxhbnMsczsKICAgIGludCBtLG47CiAgICBjaGFyIGNoOwogICAgY2luPj5uOwogICAgc3RkOjpmaWxsKEEsQStNQVgsMExMKTsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGNpbj4+YT4+YjsKICAgICAgICBBW2FdKz1iOwogICAgfQogICAgY29uc3RydWN0X3RyZWUoMExMLDBMTCxNQVgtMUxMKTsKICAgIC8qCiAgICBwcmludGYoIlRyZWU6XG4iKTsKICAgIGZvcihpbnQgaT0wO2k8U01BWDtpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCIoJWQsJWQpICIsdHJlZVtpXS5mLHRyZWVbaV0ubSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7CiAgICAqLwogICAgY2luPj5tOwogICAgd2hpbGUobS0tKQogICAgewogICAgICAgIGNpbj4+Y2g+Png7CiAgICAgICAgaWYoY2g9PScrJykKICAgICAgICB7CiAgICAgICAgICAgIEFbeF0rKzsKICAgICAgICAgICAgdXBkYXRlX3RyZWUoMExMLHgsY2gsMExMLE1BWC0xTEwpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGNoPT0nLScpCiAgICAgICAgewogICAgICAgICAgICBBW3hdLS07CiAgICAgICAgICAgIHVwZGF0ZV90cmVlKDBMTCx4LGNoLDBMTCxNQVgtMUxMKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjaD09Jz8nKQogICAgICAgIHsKICAgICAgICAgICAgbD14KzFMTDsKICAgICAgICAgICAgcj1NQVgtMUxMOwogICAgICAgICAgICB0ZW1wPXF1ZXJ5X3RyZWUoMExMLDBMTCxNQVgtMUxMLGwscik7CiAgICAgICAgICAgIGFucz0wTEw7CiAgICAgICAgICAgIGFucys9KHRlbXAuZikqeDsKICAgICAgICAgICAgLy9wcmludGYoImFucyBhdCB0aGlzIHN0YWdlOiAlZFxuIixhbnMpOwogICAgICAgICAgICB5PTE7CiAgICAgICAgICAgIHM9c3FydCh4KTsKICAgICAgICAgICAgd2hpbGUoeTw9cykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbD0oeC8oeSsxTEwpKSsxTEw7CiAgICAgICAgICAgICAgICByPXgveTsKICAgICAgICAgICAgICAgIGlmKGw+PXIpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB0ZW1wPXF1ZXJ5X3RyZWUoMExMLDBMTCxNQVgtMUxMLGwscik7CiAgICAgICAgICAgICAgICBhbnMrPXRlbXAuZip4LXRlbXAubSp5OwogICAgICAgICAgICAgICAgeSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcihsbCBpPTFMTDtpPD0oeC95KTtpKyspCiAgICAgICAgICAgICAgICBhbnMrPSh4JWkpKkFbaV07CiAgICAgICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K