Cod sursa(job #2618511)
Utilizator | Popescu Andrei Alexandru PopescuAndreiAlexandru | Data | 25 mai 2020 12:29:15 |
---|---|---|---|
Problema | Hotel | Scor | 40 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.15 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("hotel.in");
ofstream fout("hotel.out");
const int DIM = 100005;
int n,m,event,v[DIM],a,b,val;
void UpdateAdd(int a, int b)
{
for(int i=a;i<=b;i++)
v[i]=1;
}
void UpdateGet(int a, int b)
{
for(int i=a;i<=b;i++)
v[i]=0;
}
void GetAns()
{
int nr=0,Max=0;
for(int i=1;i<=n+1;i++)
{
if(!v[i])
nr++;
else
{
Max=max(Max,nr);
nr=0;
}
}
fout<<Max<<'\n';
}
int main()
{
fin>>n>>m;
v[n+1]=1;
for(int i=1;i<=m;i++)
{
fin>>event;
switch(event)
{
case 1:
{
fin>>a>>val;
b=a+val-1;
UpdateAdd(a,b);
break;
}
case 2:
{
fin>>a>>val;
b=a+val-1;
UpdateGet(a,b);
break;
}
default:
{
GetAns();
break;
}
}
}
}