Pagini recente » Istoria paginii runda/oni2012_9_1 | Cod sursa (job #1746985) | Cod sursa (job #2242743) | Cod sursa (job #999096) | Cod sursa (job #2012198)
#include <fstream>
#include <algorithm>
#define f first
#define s second
using namespace std;
int n,i,f[70],j,maxim,maxim2,minim,m,x,y,z,p,u,m2;
pair <int, int> v[100001];
ifstream fin ("marbles.in");
ofstream fout ("marbles.out");
int main (){
fin>>n>>m2;
for (i=1;i<=n;i++){
fin>>v[i].f>>v[i].s;
}
sort (v+1,v+n+1);
for (i=1;i<=m2;i++){
fin>>x>>y>>z;
if (x == 0){
// bila de coordonata y se face y+z;
p = 1;
u = n;
while (p<=u){
m = (p+u)/2;
if (v[m].f == y){
v[m].f= y+z;
break;
}
else{
if (v[m].f < y)
p = m+1;
else
u = m-1;
}
}
}
else{
// coordonate intre y si z, inclusiv;
maxim = 0;
minim = 70;
for (j=1;j<=n;j++)
if (v[j].f >= y && v[j].f <= z){
f[v[j].s] ++;
if (v[j].s < minim)
minim = v[j].s;
if (v[j].s > maxim)
maxim = v[j].s;
}
maxim2 = 0;
for (j=minim;j<=maxim;j++){
if (f[j] > maxim2)
maxim2 = f[j];
f[j] = 0;
}
fout<<maxim2<<"\n";
}
}
return 0;
}