Cod sursa(job #479188)

Utilizator freak93Adrian Budau freak93 Data 23 august 2010 11:51:46
Problema Marbles Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<algorithm>
#define bila pair<int,int>
#define x first
#define y second

using namespace std;

const char iname[]="marbles.in";
const char oname[]="marbles.out";
const int maxn=100005;
const int maxc=64;

ifstream f(iname);
ofstream g(oname);

int n,m,i,j,v[maxn],many[maxn][maxc],p,x,y,rez;
bila a[maxn];

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<maxc;++j)
            many[i][j]+=many[i-1][j];

    while(m--)
    {
        f>>p>>x>>y;
        if(p==0)
            (*lower_bound(v+1,v+n+1,x))+=y;
        else
        {
            rez=0;x=(lower_bound(v+1,v+n+1,x)-v)-1;y=(upper_bound(v+1,v+n+1,y)-v)-1;
            for(i=0;i<maxc;++i)
                rez=max(rez,many[y][i]-many[x][i]);
            g<<rez<<"\n";
        }
    }
}