Cod sursa(job #309471)

Utilizator SleepyOverlordPatcas Csaba SleepyOverlord Data 30 aprilie 2009 13:02:30
Problema Hotel Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
//Code by Patcas Csaba
//Time complexity: O(m * n)
//Space complexity: O(n)
//Method: Brute
//Working time: 5 minutes

#include <stdio.h>
#include <ctype.h>
#include <vector>
#include <string> 
#include <set> 
#include <map> 
#include <iostream> 
#include <sstream> 
#include <numeric> 
#include <algorithm> 
#include <cmath> 
#include <queue> 
#include <bitset> 

using namespace std;

#define in_file "hotel.in"
#define out_file "hotel.out"

#define VI vector <int>
#define FORN(i,n) for(int i=0;i<n;++i)
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define S size()
#define B begin() 
#define E end() 
#define X first
#define Y second
#define PB push_back
#define MP make_pair
#define ALL(x) x.begin(),x.end()
#define repeat do{ 
#define until(x) }while(!(x)); 

int n, p;
VI a;

int main()
{
	FILE* fin=fopen(in_file,"r");
	FILE* fout=fopen(out_file,"w");
	fscanf(fin,"%d%d",&n,&p);
	a.resize(n+1);
	FORN(q,p)
	{
		int op;
		fscanf(fin,"%d",&op);
		if (op==3)
		{
			int now=0, best=0;
			FOR(i,1,n)
				if (a[i]) now=0;
				else 
				{
					++now;
					best=max(best,now);
				}
			fprintf(fout,"%d\n",best);
		}
		else
		{
			int x, y;
			fscanf(fin,"%d%d",&x,&y);
			FOR(i,x,x+y-1) a[i]=2-op;
		}
	}
	fclose(fin);
	fclose(fout);
	
	return 0;
}