Pagini recente » Cod sursa (job #2082290) | Cod sursa (job #2616104) | Cod sursa (job #2498885) | Cod sursa (job #903983) | Cod sursa (job #1161512)
#include<fstream>
#define N 100100
#define fi first
#define bit 65
#define se second
#include<algorithm>
#define FOR(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
ifstream f("marbles.in");
ofstream g("marbles.out");
pair<int,int> v[N];
int a,b,n,i,t,sol,j,S[N][bit],m;
int cbs(int x)
{
int st=1,dr=n,sol=n+1,mij;
while(st<=dr)
{
mij=(st+dr)>>1;
if(v[mij].fi>=x)
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
return sol;
}
int cbd(int x)
{
int st=1,dr=n,sol=0,mij;
while(st<=dr)
{
mij=(st+dr)>>1;
if(v[mij].fi<=x)
{
st=mij+1;
sol=mij;
}
else
dr=mij-1;
}
return sol;
}
int main()
{
f>>n>>m;
FOR(i,1,n)
{
f>>v[i].fi>>v[i].se;
}
sort(v+1,v+n+1);
for(i=1;i<=n;++i)
{
for(j=1;j<=64;++j)
S[i][j]=S[i-1][j];
S[i][v[i].se]++;
}
for(i=1;i<=m;++i)
{
f>>t;
if(t)
{
f>>a>>b;
a=cbs(a);
a--;
b=cbd(b);
sol=0;
for(j=1;j<=64;++j)
sol=max(sol,S[b][j]-S[a][j]);
g<<sol<<"\n";
}
else
{
f>>a>>b;
a=cbs(a);
v[a].fi+=b;
}
}
return 0;
}