Cod sursa(job #1654619)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 17 martie 2016 12:07:15
Problema Hotel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;

ifstream f("hotel.in");
ofstream g("hotel.out");

long L[400005],n,i,j,p,t,pos,nr;

struct ab{
    long val,st,dr;
}v[400005];

ab update1(long nod,long st,long dr,long x,long y)
{
    if (x<=st && dr<=y)
    {
        L[nod]=1;
        v[nod].val=x-y+1;
        v[nod].st=v[nod].dr=x-y+1;
        ab emp;
        emp.val=emp.st=emp.dr=x-y+1;
        return emp;
    }
    else
    {
        ab r1,r2;
        long mij=(st+dr)/2;
        if (x<=mij)
            r1=update1(nod*2,st,mij,x,y);
        if (mij+1<=y)
            r2=update1(nod*2+1,mij+1,dr,x,y);
    }
}

int main()
{
    f>>n>>p;
    for (i=1;i<=p;i++)
    {
        f>>t;
        if (t==3)
            g<<v[1].val;
        else
        {
            f>>pos>>nr;
            if (t==1)
                update1(1,1,n,pos,pos+nr);
            else
                update0(1,1,n,pos,pos+nr);
        }

    }

    return 0;
}