Pagini recente » Cod sursa (job #2830600) | Cod sursa (job #2191780) | Cod sursa (job #484052) | Cod sursa (job #1872561) | Cod sursa (job #2800741)
#include <bits/stdc++.h>
using namespace std;
const int N = (1<<18);
int n, m, i, p, c;
int camere[N];
ifstream f("hotel.in");
ofstream g("hotel.out");
/*int adauga(i,m)
{
for(int j=i; j<i+m; j++)
camere[j]=1;
}
int scoate(i,m)
{
for(int j=i; j<i+m; j++)
camere[j]=0;
}
void maxim(X)
{
int smax = 1, dmax = 0;
for(int i = 0 ; i < n ; i ++)
for(int j = i ; j < n ; j ++)
{
bool pp = true;
for(int k = i ; k <= j ; k ++)
if(X[k] != 0)
pp = false;
if(pp)
if(j - i + 1 > dmax - smax + 1)
smax = i, dmax = j;
}
g<<dmax-smax+1;
}*/
int main()
{
f>>n>>p;
for(int h=1; h<=p; h++)
{
f>>c;
if(c!=3)
{
f>>i>>m;
if(c==1)
{
for(int j=i; j<i+m; j++)
camere[j]=1;
/*for(int j=1; j<=n; j++)
g<<camere[j];
g<<endl;*/
}
else if (c==2)
{
for(int j=i; j<i+m; j++)
camere[j]=0;
/* for(int j=1; j<=n; j++)
g<<camere[j];
g<<endl;*/
}
}
else
{
int smax = 1, dmax = 0;
for(int i = 1 ; i <= n ; i ++)
for(int j = i ; j <= n ; j ++)
{
bool pp = true;
for(int k = i ; k <= j ; k ++)
if(camere[k] != 0)
pp = false;
if(pp)
if(j - i + 1 > dmax - smax + 1)
smax = i, dmax = j;
}
//g<<dmax<<smax<<endl;
g<<dmax-smax+1<<endl;
};
}
return 0;
}