Pagini recente » Istoria paginii runda/lsort | Cod sursa (job #759750) | Cod sursa (job #793049) | Istoria paginii utilizator/rodilaandrei212004 | Cod sursa (job #1006098)
#include<fstream>
#include<algorithm>
using namespace std;
int n,m,sum[65][100100],X[100100],sol;
struct Bila{
int x,color;
bool operator <(const Bila &A) const
{
return x<A.x;
}
};
Bila v[100100];
int main()
{
int i,j,c,op,poz,st,dr;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>v[i].x>>v[i].color;
sort(v+1,v+n+1);
for(i=1;i<=n;i++)
{
for(c=1;c<=64;c++)
sum[c][i]=sum[c][i-1];
sum[v[i].color][i]++;
X[i]=v[i].x;
}
while(m--)
{
fin>>op>>i>>j;
if(op==0)
{
poz=lower_bound(X+1,X+n+1,i)-X;
X[poz]+=j;
}
else
{
st=lower_bound(X+1,X+n+1,i)-X;
dr=upper_bound(X+1,X+n+1,j)-X-1;
sol=0;
for(c=1;c<=64;c++)
sol=max(sol,sum[c][dr]-sum[c][st-1]);
fout<<sol<<"\n";
}
}
fin.close();
fout.close();
return 0;
}