Cod sursa(job #828715)

Utilizator lehman97Dimulescu David lehman97 Data 4 decembrie 2012 10:39:39
Problema Hotel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <iostream>
#include <stdio.h>

using namespace std;


FILE *f=fopen("hotel.in","r");
FILE *g=fopen("hotel.out","w");

int v[300000];

int mx(int a ,int b)
{
    if(a>b)return a;else return b;
}


void update(int l,int r, int pi, int pf, int val ,int nod)
{
    int m=(l+r)/2;
    if(l==r) {v[nod]+=val;return;}
    else
    {
        if(pi<m) update(l,m,pi,pf,val,2*nod);
        else update(m+1,r,pi,pf,val,2*nod+1);

    }
    v[nod]=v[2*nod]+v[2*nod+1];
}

void query(int l,int r,int nod)
{
    int m=(l+r)/2;
    if(maxim<v[nod])
    else
    {
        query(l,m,2*nod);
        query(m+1,r,2*nod+1);

    }
    v[nod]=mx(v[2*nod],v[2*nod+1]);

}



int main()
{
    fscanf(f,"%d%d",&n,&p);
    for(i=1;i<=p;i++)
    {
        fscanf(f,"%c",&c);
        switch(c)
        {
            case '1':
            {
                fscanf(f,"%d%d",&a,&nr);
                update(1,n,a,nr+a-1,1,1);
                break;
            }
            case '2':
            {
                fscanf(f,"%d%d",&a,&nr)
                update(1,n,a,nr+a-1,-1,1);
                break;
            }
            case '3':
            {
                query(1,n,1);
                break;
            }


        }
    }
    fclose(g);
    return 0;
}