Pagini recente » Cod sursa (job #2267167) | Cod sursa (job #15670) | Cod sursa (job #2143036) | Cod sursa (job #2468616) | Cod sursa (job #1175050)
#include<algorithm>
#include<cstdio>
using namespace std;
struct mazi{int poz,c;};
mazi v[100001];
int a[100001][64];
int n;
bool meow(mazi a,mazi b){
if (a.poz<b.poz) return true;
return false;
}
int ala_baba(int nr){
int in=1,sf=n,m;
while(in<sf){
m=(in+sf)/2;
if (v[m].poz<nr) in=m+1;
else
if (v[m].poz==nr) in=sf=m;
else sf=m;
}
return in;
}
int main(){
freopen ("marbles.in","r",stdin);
freopen ("marbles.out","w",stdout);
int i,m,k,p,j,max;
scanf ("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf ("%d%d",&v[i].poz,&v[i].c);
sort (v+1,v+n+1,meow);
for(i=1;i<=n;i++){
for(j=1;j<=64;j++)
a[i][j]=a[i-1][j];
a[i][v[i].c]++;
}
for(i=1;i<=m;i++){
scanf ("%d%d%d",&p,&j,&k);
if (p==0){
j=ala_baba(j);
v[j].poz+=k;
}
else {
max=ala_baba(j);
if (j==v[max].poz) j=max-1;
else j=max;
k=ala_baba(k);
max=0;
for(p=1;p<=64;p++)
if (max<(a[k][p]-a[j][p])) max=a[k][p]-a[j][p];
printf ("%d\n",max);
}
}
return 0;
}