Pagini recente » Cod sursa (job #87227) | InfoTech | Cod sursa (job #2138623) | Cod sursa (job #1933007) | Cod sursa (job #2517205)
#include <fstream>
#include <algorithm>
#define x first
#define y second
using namespace std;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
int n,m,i,j,k,q,s[65][100001],st,dr,mid,sol,cul;
pair<int,int> v[100001];
int main(){
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>v[i].x>>v[i].y;
sort(v+1,v+n+1);
for(i=1;i<=n;i++)
for(j=1;j<=64;j++)
if(v[i].y==j)
s[j][i]=s[j][i-1]+1;
else
s[j][i]=s[j][i-1];
for(;m;m--){
fin>>q>>i>>j;
if(q==0){
st=1; dr=n;
while(st<=dr){
mid=(st+dr)/2;
if(v[mid].x==i)
break;
if(v[mid].x>i)
dr=mid-1;
else
st=mid+1;
}
v[mid].x+=j;
}else{
st=1; dr=n;
while(st<=dr){
mid=(st+dr)/2;
if(v[mid].x>=i)
dr=mid-1;
else
st=mid+1;
}
i=st;
st=1; dr=n;
while(st<=dr){
mid=(st+dr)/2;
if(v[mid].x<=j)
st=mid+1;
else
dr=mid-1;
}
//j=dr;
st=i;
sol=-1;
for(i=1;i<=64;i++)
sol=max(sol,s[i][dr]-s[i][st-1]);
fout<<sol<<"\n";
}
}
return 0;
}