Cod sursa(job #2800741)

Utilizator dariaesteraDaria Estera Emanuela dariaestera Data 13 noiembrie 2021 21:17:17
Problema Hotel Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.91 kb
#include <bits/stdc++.h>

using namespace std;

const int N = (1<<18);

int n, m, i, p, c;

int camere[N];

ifstream f("hotel.in");
ofstream g("hotel.out");

/*int adauga(i,m)
{
    for(int j=i; j<i+m; j++)
        camere[j]=1;
}

int scoate(i,m)
{
    for(int j=i; j<i+m; j++)
        camere[j]=0;
}

void maxim(X)
{
    int smax = 1, dmax = 0;
for(int i = 0 ; i < n ; i ++)
    for(int j = i ; j < n ; j ++)
    {
        bool pp = true;
        for(int k = i ; k <= j ; k ++)
            if(X[k] != 0)
                pp = false;
        if(pp)
            if(j - i + 1 > dmax - smax + 1)
                smax = i, dmax = j;
    }
    g<<dmax-smax+1;
}*/

int main()
{
    f>>n>>p;
    for(int h=1; h<=p; h++)
    {
        f>>c;
        if(c!=3)
        {
            f>>i>>m;
            if(c==1)
            {
                for(int j=i; j<i+m; j++)
                    camere[j]=1;
                     /*for(int j=1; j<=n; j++)
                        g<<camere[j];
                     g<<endl;*/
            }
            else if (c==2)
            {
                for(int j=i; j<i+m; j++)
                    camere[j]=0;
                   /* for(int j=1; j<=n; j++)
                        g<<camere[j];
                     g<<endl;*/
            }
        }
        else
        {
            int smax = 1, dmax = 0;
            for(int i = 1 ; i <= n ; i ++)
                for(int j = i ; j <= n ; j ++)
                {
                    bool pp = true;
                    for(int k = i ; k <= j ; k ++)
                        if(camere[k] != 0)
                            pp = false;
                    if(pp)
                        if(j - i + 1 > dmax - smax + 1)
                            smax = i, dmax = j;
                }
                //g<<dmax<<smax<<endl;
            g<<dmax-smax+1<<endl;
        };
    }
    return 0;
}