Cod sursa(job #1798008)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 4 noiembrie 2016 20:44:52
Problema Marbles Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
ifstream f("marbles.in");
ofstream g("marbles.out");
int n,m,i,j,v[1<<17],many[1<<17][64],p,x,y,rez;
pair<int,int> a[1<<17];
int main()
{
    f>>n>>m;
    for(i=1;i<=n;++i)
        f>>a[i].x>>a[i].y;
    sort(a+1,a+n+1);
    for(i=1;i<=n;++i)
        v[i]=a[i].x,many[i][a[i].y-1]=1;
    for(i=1;i<=n;++i)
        for(j=0;j<64;++j)
            many[i][j]+=many[i-1][j];
    while(m--)
    {
        f>>p>>x>>y;
        if(!p) (*lower_bound(v+1,v+n+1,x))+=y;
        else
        {
            x=(lower_bound(v+1,v+n+1,x)-v)-1;y=(upper_bound(v+1,v+n+1,y)-v)-1;
            for(i=rez=0;i<64;++i)
                rez=max(rez,many[y][i]-many[x][i]);
            g<<rez<<'\n';
        }
    }
    return 0;
}