Pagini recente » Cod sursa (job #992881) | Cod sursa (job #2485349) | Cod sursa (job #3164184) | Cod sursa (job #2834762) | Cod sursa (job #82203)
Cod sursa(job #82203)
#include <stdio.h>
#define nmax 1000000
int STG[nmax], DRE[nmax], MAX[nmax], PLI[nmax];
int ocu[nmax];
int M, N;
void baga(int i, int j)
{
for (int k = i; k <= j; k++)
ocu[k] = 1;
}
void scoate(int i, int j)
{
for (int k = i; k <= j; k++)
ocu[k] = 0;
}
int cere()
{
ocu[0] = ocu[N+1] = 1;
int left = 0, maxim = 0;
for (int i = 1; i <= N+1; i++)
{
if (ocu[i] == 0 && ocu[i-1] == 1)
left = i;
else if (ocu[i] == 1 && ocu[i-1] == 0)
if (i-left > maxim) maxim = i-left;
}
return maxim;
}
int main()
{
int t, c, a, b;
freopen("hotel.in", "r", stdin);
freopen("hotel.out", "w", stdout);
scanf("%d%d", &N, &M);
// fa(1, 1, N);
scoate(1, N);
for (t = 1; t <= M; ++t)
{
scanf("%d", &c);
switch(c)
{
case 1:
{
scanf("%d%d", &a, &b);
// baga(1, 1, N, a, a+b-1);
baga(a, a+b-1);
break;
}
case 2:
{
scanf("%d%d", &a, &b);
// scoate(1, 1, N, a, a+b-1);
scoate(a, a+b-1);
break;
}
case 3:
{
// printf("%d\n", MAX[1]);
printf("%d\n", cere());
break;
}
}
}
return 0;
}