Cod sursa(job #3340828)

Utilizator Radu_MocanasuMocanasu Radu Radu_Mocanasu Data 16 februarie 2026 18:08:45
Problema Marbles Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#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 = lower_bound(v + 1, v + n + 1, make_pair(x, 0)) - v;
            int dr = lower_bound(v + 1, v + n + 1, make_pair(y, 0)) - v;
            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;
}