Pagini recente » Cod sursa (job #2863252) | Cod sursa (job #2943192) | Cod sursa (job #1662375) | Cod sursa (job #2658881) | Cod sursa (job #2646105)
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cmath>
#define NMAX 100003
#define ll long long
using namespace std;
ll n,m,i,j,cer,a,b,ind,st,dr,hmax;
ll color[100];
struct bile{
ll x,c;
}v[NMAX];
bool cmp(bile a,bile b){
return (a.x<b.x);
}
ll cautare_binara(ll nr){
ll st=1,dr=n,mid=0;
while(st<=dr){
mid=(st+dr)>>1;
if(v[mid].x==nr)
return mid;
else if(nr>v[mid].x)
st=mid+1;
else
dr=mid-1;
}
}
ll cautare_binara_2(ll nr){
ll st=1,dr=n,mid=0;
while(st<=dr){
mid=(st+dr)>>1;
if(nr>=v[mid].x)
st=mid+1;
else
dr=mid-1;
}
}
int main()
{
freopen("marbles.in","r",stdin);
freopen("marbles.out","w",stdout);
scanf("%lli%lli",&n,&m);
for(i=1;i<=n;i++)
scanf("%lli%lli",&v[i].x,&v[i].c);
sort(v+1,v+n+1,cmp);
for(i=1;i<=m;i++){
scanf("%lli%lli%lli",&cer,&a,&b);
if(!cer){
ind=cautare_binara(a);
v[ind].x=v[ind].x+b;
// printf("%d",ind);
}else{
st=cautare_binara(a);
dr=cautare_binara_2(b);
hmax=0;
for(j=st;j<=dr;j++)
if(v[j].x)
color[v[j].c]++,hmax=max(hmax,color[v[j].c]);
//printf("%lli %lli\n",st,dr);
printf("%lli\n",hmax);
for(j=0;j<=70;j++)
color[j]=0;
}
}
/*for(i=1;i<=n;i++)
printf("%lli %lli\n",v[i].x,v[i].c);*/
//printf("%lli",cautare_binara(-1));
return 0;
}