Cod sursa(job #2281817)

Utilizator adriashkin.07alehandru69 adriashkin.07 Data 12 noiembrie 2018 19:34:07
Problema Hotel Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<bits/stdc++.h>
 
using namespace std;
int A[100005],n,p,ma,j,m,k,x,t,l;
 
int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); 
	ifstream cin("hotel.in");
	ofstream cout("hotel.out");
	cin.tie(0);
	cin>>n>>p;
	ma=n;
	for(int i=1;i<=n;i++) A[i]=n;
	for(int i=1;i<=p;i++)
	{
		cin>>x;
		if(x==3) cout<<ma<<"\n";
		if(x==1)
		{
			cin>>j>>m;
			t=0;
			for(int l=j;l<=j+m-1;l++)
			{
		//		if(A[l]==ma)ma=0,t=1;
				A[l]=0;
			}
			l=j-1;
			k=0;
			while(A[l]&&l)
			{
		///		if(A[l]==ma&&!t)ma=0,t=1;
				A[l]=++k;
				l--;
			}
		//	if(k>ma)ma=k;
			k=0;
			l=j+m;
			while(A[l]&&l<=n)
			{
			//	if(A[l]==ma&&!t)ma=0;
				A[l]=++k;
				l++;
			}
		//	if(k>ma)ma=k;
		ma=0;
			for(int l=1;l<=n;l++) if(A[l]>ma) ma=A[l];
		}
		if(x==2)
		{
			cin>>j>>m;
			t=0;
			k=0;
			for(int l=j;l<=j+m-1;l++)
			{
				A[l]=++k;
			}
			l=j-1;
			while(A[l]&&l)
			{
		//		if(A[l]==ma)ma=0,t=1;
				A[l]=++k;
				l--;
			}
				l=j+m;
			while(A[l]&&l<=n)
			{
		//		if(A[l]==ma&&!t)ma=0;
				A[l]=++k;
				l++;
			}
		//	if(k>ma)ma=k;
		ma=0;
			for(int l=1;l<=n;l++) if(A[l]>ma) ma=A[l];
		}
	}
 
}