Pagini recente » Cod sursa (job #3314243) | Cod sursa (job #683480) | Cod sursa (job #2802500) | Cod sursa (job #2884492) | Cod sursa (job #3343633)
#include <fstream>
#include <algorithm>
#include <iostream>
#include <vector>
#include <set>
#include <unordered_map>
using namespace std;
#define STDIN 0
#if STDIN
#define fein cin
#define fout cout
#else
ifstream fein("marbles.in");
ofstream fout("marbles.out");
#endif
const int NMAX=1501;
const int PRIMEMAX=1e9+1;
const double INF = 1e9+1;
const int MOD = 104659;
const double EPS=1e-5;
int n, m;
set<int> balls[65];
unordered_map<int, int> pos_to_color;
int querry(int l, int r) {
int res=0;
for(int i=1;i<=64;i++) {
res=max(res, (int)distance(
lower_bound(balls[i].begin(), balls[i].end(), l),
upper_bound(balls[i].begin(), balls[i].end(), r)
));
}
return res;
}
void move(int x, int delta) {
int cl=pos_to_color[x];
if(balls[cl].find(x)!=balls[cl].end()) {
balls[cl].erase(x);
balls[cl].insert(x+delta);
}
if(pos_to_color.find(x)!=pos_to_color.end()) {
pos_to_color.erase(x);
}
pos_to_color[x+delta]=cl;
}
void solve() {
for(int i=1;i<=m;i++) {
int c, x, y; fein>>c>>x>>y;
if(c==0) {
move(x, y);
}
else {
fout<<querry(x, y)<<'\n';
}
}
}
void read_data() {
fein>>n>>m;
for(int i=1;i<=n;i++) {
int a, b; fein>>a>>b;
balls[b].insert(a);
pos_to_color[a]=b;
}
}
int main()
{
read_data();
solve();
return 0;
}