Pagini recente » Cod sursa (job #2715226) | Cod sursa (job #1414462) | Cod sursa (job #1022783) | Cod sursa (job #1562861) | Cod sursa (job #1166787)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
int n,m,i,j,ok,minim,maxim,st,dr;
pair <int,int> v[100010];
int a[66][100010],k,t,x,y,z,mid;
int main(){
fin>>n>>m;
for(i=1;i<=n;i++){
fin>>v[i].first>>v[i].second;
for(j=1;j<=64;j++){
if(v[i].second==j)
a[j][i]=a[j][i-1]+1;
}
}
for(k=1;k<=m;k++){
fin>>x>>y>>z;
if(x==0){
st=1;
dr=n;
while(st<=dr){
mid=st+(dr-st)/2;
if(v[mid].first==y)
break;
if(v[mid].first>y)
dr=mid-1;
else
st=mid+1;
}
v[mid].first+=z;
}
if(x==1){
maxim=0;
st=1;
dr=n;
while(st<=dr){
mid=st+(dr-st)/2;
if(v[mid].first>=z)
dr=mid-1;
else
st=mid+1;
}
for(i=1;i<=64;i++){
if(maxim<a[i][st])
maxim=a[i][st];
}
fout<<maxim<<"\n";
}
}
return 0;
}