Pagini recente » Cod sursa (job #2480780) | Cod sursa (job #1256241) | Cod sursa (job #96516) | Cod sursa (job #2805302) | Cod sursa (job #1654619)
#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;
}