Pagini recente » Cod sursa (job #2415778) | Cod sursa (job #1805104) | Cod sursa (job #2035237) | Cod sursa (job #3190631) | Cod sursa (job #308599)
Cod sursa(job #308599)
#include<stdio.h>
FILE *f,*g;
long i,u,lungmax,ok,l,ll,l2,lung,n,p,a,b,c,o;
short cam[100000];
int main()
{
f=fopen("hotel.in","rt");
g=fopen("hotel.out","wt");
fscanf(f,"%ld %ld\n",&n,&p);
for (i=1;i<=p;i++)
{
u=a;
fscanf(f,"%ld",&a);
ok=0;
if (a==1)
{
fscanf(f,"%ld %ld",&b,&c);
if (b>ll || c<l2) ok=1;
for (o=b;o<=b+c-1;o++)
cam[o]=1;
}
else if (a==2)
{
fscanf(f,"%ld %ld",&b,&c);
if (b==ll) ok=1;
else if (c-b+1>l2-ll+1) ok=1;
for (o=b;o<=b+c-1;o++)
cam[o]=0;
}
else if (a==3)
{
if (u!=3 || ok==1)
{
lung=0;
lungmax=0;
l=1;
for (o=1;o<=n;o++)
if (cam[o]==0) lung++;
else {
if (lung>lungmax) { lungmax=lung;ll=l;l2=o;}
lung=0;
ll=o;
}
if (lung>lungmax) lungmax=lung;
}
fprintf(g,"%ld\n",lungmax);
}
}
fclose(f);
fclose(g);
return 0;
}