Pagini recente » Cod sursa (job #2487743) | Cod sursa (job #166083) | Cod sursa (job #2157050) | Cod sursa (job #724740) | Cod sursa (job #2551921)
#include <iostream>
#include <fstream>
#define MAXN 100001
#define sh short
using namespace std;
ifstream fin("hotel.in");
ofstream fout("hotel.out");
bool busy[4*MAXN+66];
int n;
int in,out;
void act(int nod,int st,int dr,bool ac){
if(nod==2){
nod=nod;
}
if(st==dr){
if(in<=st and st<=out)
busy[nod]=ac;
return;
}
int mij=(st+dr)/2;
if(in<=mij) act(nod*2,st,mij,ac);
if(out>mij) act(nod*2+1,mij+1,dr,ac);
busy[nod]=busy[nod*2+1]|busy[nod*2];
}
void afis(){
fout<<busy[1]<<'\n';
fout<<busy[2]<<' '<<busy[3]<<'\n';
for(int i=4;i<=7;i++)
fout<<busy[i]<<' ';
fout<<'\n';
for(int i=8;i<=15;i++)
fout<<busy[i]<<' ';
fout<<'\n';
fout<<busy[16]<<' '<<busy[17]<<' '<<busy[20]<<' '<<busy[21]<<' ';
fout<<busy[22]<<' '<<busy[23];
}
int main(){
int nrc;
fin>>n>>nrc;
for(int i=1;i<=nrc;i++){
sh tsk;
fin>>tsk;
if(tsk==1){
int m;
fin>>in>>m;
out=in+m-1;
act(1,1,n,1);
afis();
}
else if(tsk==2){
int m;
fin>>in>>m;
out=in+m-1;
act(1,1,n,0);
afis();
}
else{
tsk=3;
}
}
return 0;
}