Pagini recente » Cod sursa (job #3270400) | Cod sursa (job #1172112) | Cod sursa (job #1889678) | Cod sursa (job #2581384) | Cod sursa (job #3276947)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
/**
*/
struct bila
{
int x,c;
};
bila v[100001];
bool cmp (const bila &a,const bila &b)
{
return a.x<b.x;
}
int n, i, j, cmax, poz, poz1, poz2, sol, ch, a, b, t, q, s[100001][65];
int cb (int x)
{
int st = 1, dr = n, mij;
while (st <= dr)
{
mij = (st+dr) / 2;
if (v[mij].x > x)
dr = mij - 1;
else
st = mij + 1;
}
return dr;
}
int main()
{
fin >> n >> q;
for (i = 1 ; i <= n ; i++)
{
fin >> v[i].x >> v[i].c;
cmax = max(cmax, v[i].c);
}
sort (v+1,v+n+1,cmp);
for (i=1; i<=n; i++)
{
for (j=1; j<=cmax; j++)
s[i][j]=s[i-1][j];
s[i][v[i].c]++;
}
for (t=1; t<=q; t++)
{
fin>>ch>>a>>b;
if (ch==0)
{
poz=cb (a);
v[poz].x+=b;
}
else
{
poz1=cb (a-1);
poz2=cb (b);
poz1++;
sol=0;
for (j=1; j<=cmax; j++)
sol=max (sol,s[poz2][j]-s[poz1-1][j]);
fout<<sol<<"\n";
}
}
return 0;
}