Pagini recente » Cod sursa (job #1109775) | Cod sursa (job #2277512) | Cod sursa (job #434061) | Cod sursa (job #1332180) | Cod sursa (job #2294018)
#include <bits/stdc++.h>
#define N_MAX 100003
using namespace std;
int m, i, j, x, y, tip, st, dr, ans;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
int sp [N_MAX][66],n;
pair <int,int> v [N_MAX];
int bns (int x, int f) {
int st = 1, dr = n;
while (st <= dr) {
int mij = (st + dr) / 2;
if (v [mij].first > x || (v [mij].first == x && f == 0))
dr = mij - 1;
else st = mij + 1;
}
if (f == 0) return st;
else return dr;
}
int main (){
fin >> n >> m;
for (int i = 1; i <= n; i ++)
fin >> v [i].first >> v [i].second;
sort (v + 1, v + n + 1);
for (i = 1; i <= n; i ++){
sp [i][v [i].second] ++;
for (j = 1; j <= 64; j ++)
sp [i][j] += sp [i - 1][j];
}
for (int l = 0; l < m; l ++) {
fin >> tip >> x >> y;
st = bns (x, 0);
if (tip == 0)
v [st].first += y;
else{
dr = bns (y, 1);
for (i = 1, ans = 0; i <= 64; i ++)ans = max (ans, sp [dr][i] - sp [st - 1][i]);
fout << ans << '\n';
}
}
return 0;
}