Pagini recente » Cod sursa (job #1075337) | Cod sursa (job #3033141) | Cod sursa (job #1373380) | Cod sursa (job #2953477) | Cod sursa (job #3277030)
#include <bits/stdc++.h>
#define MOD 20173333
using namespace std;
ifstream fin("marbles.in");
ofstream fout("marbles.out");
int n, m;
int a[100005][70];
pair<int, int> v[100005];
int CautBin(int x)
{
int st, dr, mij, P;
st = 1; dr = n;
while (st <= dr)
{
mij = (st + dr) / 2;
if (v[mij].first <= x)
{
P = mij;
st = mij + 1;
}
else dr = mij - 1;
}
return P;
}
int main()
{
int t, i, j, P, P1, sol;
fin >> n >> m;
for (int p = 1; p <= n; p++)
{
fin >> v[p].first >> v[p].second;
//a[v[p].first][v[p].second] = 1;
}
sort(v + 1, v + n + 1);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= 64; j++)
a[i][j] = a[i - 1][j];
a[i][v[i].second]++;
}
while (m--)
{
fin >> t >> i >> j;
if (t == 0)
{
P = CautBin(i);
v[P].first += j;
}
else
{
P = CautBin(i - 1);
P1 = CautBin(j);
sol = 0;
for (int p = 1; p <= 64; p++)
sol = max(sol, a[P1][p] - a[P][p]);
fout << sol << "\n";
}
}
return 0;
}