Pagini recente » Cod sursa (job #214605) | Cod sursa (job #1443411) | Cod sursa (job #2300384) | Cod sursa (job #1512275) | Cod sursa (job #1182965)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,i,j,p,q,r,nr,m,k,l,s,maxx,i1;
int a[65][100005];
struct nod
{
int x;
int y;
}v[100005];
int cmp(const nod a,const nod b)
{
return a.x<b.x;
}
int w[100005];
int main()
{
freopen("marbles.in","r",stdin);
freopen("marbles.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=n;i++)
{
scanf("%d %d",&v[i].x,&v[i].y); a[v[i].y][i]=1;
}
sort(v+1,v+n+1,cmp);
for (i=1;i<=n;i++) for (j=1;j<=64;j++) {w[i]=v[i].x; a[j][i]=a[j][i-1]+(v[i].y==j);}
for (i1=1;i1<=m;i1++)
{
scanf("%d %d %d",&r,&p,&q);
if (r==0)
{
k=(upper_bound(w+1,w+n+1,p)-w-1);
if (v[k].x!=p) continue;
w[k]=p+q;
}
else
{
maxx=0;
k=(upper_bound(w+1,w+n+1,p)-w-1); if (w[k]==p) --k;
l=(upper_bound(w+1,w+n+1,p)-w-1);
for (i=1;i<=64;i++) maxx=max(maxx,(a[i][l]-a[i][k-1]));
printf("%d\n",maxx);
}
}
return 0;
}