Pagini recente » Cod sursa (job #1295809) | Cod sursa (job #2921843) | Cod sursa (job #2762543) | Cod sursa (job #2521381) | Cod sursa (job #1386074)
#include <fstream>
#define nmax 100005
#define kmax 65
using namespace std;
ifstream f("marbles.in");
ofstream g("marbles.out");
int n,m,v[kmax][nmax];
int a[nmax],k[nmax];
int cautbin(int x)
{
int p=0;
for (int i=1<<16;i;i>>=1)
if (i+p<=n&&x>=a[p+i])
p+=i;
return p;
}
int main()
{
int i,j,op,p,q,t;
int x,y,sol;
f>>n>>m;
for (i=1;i<=n+1;i++) {
if (i<=n)
f>>a[i]>>k[i];
for (j=1;j<kmax;j++)
v[i][j]=v[i-1][j];
v[i][k[i]]++;
}
for (i=1;i<=m;i++) {
f>>op>>p>>q;
if (op==0) {
t=cautbin(p);
a[t]+=q;
continue;
}
x=cautbin(p);
if (a[x]==p)
x--;
y=cautbin(q);
sol=0;
for (j=1;j<=64;j++)
sol=max(sol,v[y][j]-v[x][j]);
g<<sol<<'\n';
}
return 0;
}