Cod sursa(job #3283462)

Utilizator stefanrotaruRotaru Stefan-Florin stefanrotaru Data 9 martie 2025 17:07:38
Problema Marbles Scor 100
Compilator cpp-64 Status done
Runda oji_go_11_12 Marime 1.01 kb
#include <fstream>
#include <algorithm>
#include <map>
#include <unordered_map>

using namespace std;

ifstream f("marbles.in");
ofstream g("marbles.out");

int n, m, x, v, y;

int main()
{
    f >> n >> m;

    map <int, int> culori;

    for (int i = 1; i <= n; ++i) {
        int a, b;

        f >> a >> b;

        culori[a] = b;
    }

    for (int i = 1; i <= m; ++i) {
        f >> v >> x >> y;

        if (v == 0) {
            int culoareVeche = culori[x];

            culori.erase(x);

            culori[x + y] = culoareVeche;
        }
        else {
            int fr[65] = {0};

            auto st = culori.lower_bound(x);
            auto dr = culori.upper_bound(y);

            for (auto it = st; it != dr; ++it) {
                fr[it -> second]++;
            }

            int ans = -1;

            for (int i = 1; i <= 64; ++i) {
                ans = max(ans, fr[i]);
            }

            g << ans << '\n';
        }
    }

    return 0;
}