Pagini recente » Cod sursa (job #1009920) | Cod sursa (job #3307576) | Cod sursa (job #3338932) | Cod sursa (job #492318) | Cod sursa (job #3340830)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
pair <int, int> v[100005];
int sp[100005][64];
int main()
{
int n, i, q, x, y, c;
fin >> n >> q;
for (i = 1; i <= n; i++) {
fin >> v[i].first >> v[i].second;
v[i].second--;
}
sort(v + 1, v + n + 1);
for (i = 1; i <= n; i++) {
for (int e = 0; e < 64; e++) sp[i][e] = sp[i - 1][e];
sp[i][v[i].second]++;
}
while (q--) {
fin >> c >> x >> y;
if (!c) {
int p = lower_bound(v + 1, v + n + 1, make_pair(x, 0)) - v;
v[p].first += y;
}
else {
int st = upper_bound(v + 1, v + n + 1, make_pair(x, 0)) - v;
int dr = upper_bound(v + 1, v + n + 1, make_pair(y, 64)) - v - 1;
int mx = 0;
for (int e = 0; e < 64; e++) mx = max(mx, sp[dr][e] - sp[st - 1][e]);
fout << mx << "\n";
}
}
return 0;
}