Cod sursa(job #385268)

Utilizator yotherockerPuia Tudor yotherocker Data 22 ianuarie 2010 14:35:59
Problema Hotel Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<iostream>
#include<fstream>
using namespace std;

long n,p,C[100000];
void check_in(long,long);
void check_out(long,long);
long check(void);

int main()
{
	int i,c;
	long start,camere,max;
	ifstream In("hotel.in");
	ofstream Out("hotel.out");
	In>>n>>p;
	max=n;
	
	In>>c;
	if(c==3) Out<<n<<endl;
	else if(c==1) {In>>start>>camere;check_in(start,camere);}
	     else {In>>start>>camere;check_out(start,camere);}
	
	
	for(i=2;i<=p;i++)
	{
		In>>c;
		switch(c)
		{
			case 1:{In>>start>>camere;check_in(start,camere);}break;
			case 2:{In>>start>>camere;check_out(start,camere);}break;
		    case 3:{max=check();Out<<max<<endl;}break;
		}
	}
	
	In.close();
	Out.close();
	return 0;
}


void check_in(long s,long c)
{
	long i;
	for(i=s;i<s+c;i++) C[i]=1;
}

void check_out(long s,long c)
{
	long i;
	for(i=s;i<s+c;i++) C[i]=0;
}

long check()
{
	long i=1,m=0,mf=0;
	if(C[1]==0) {m=1;i++;}
	for(;i<=n;i++)
	{
		if(C[i]==0) m++;
		else {if(m>mf) mf=m; m=0;}
	}
	if(m>mf) mf=m;
	return mf;
}