Cod sursa(job #3261313)

Utilizator postolachepostolache postolache Data 5 decembrie 2024 13:57:36
Problema Hotel Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include <bits/stdc++.h>
#define int long long

//#pragma GCC optimize ("O3")

using namespace std;

int v[200005] , sigma[200005];

void propagate ( int b){
    for(int i=1;i <= b;i++){
        sigma[i]=sigma[i - 1] + sigma[i];
    }
    for(int i=1;i <= b;i++){
        v[i]+=sigma[i];
    }
    for(int i=1;i <= b;i++){
        sigma[i]=0;
    }
}

int32_t main()
{
    v[0]=69;
    ifstream cin ("hotel.in");
    //ofstream cout ("hotel.out");
    int n , k ;
    cin >> n >> k;
    int j , l;
    for(int i=0;i < k;i++){
        cin >> j;
        //for(int i=0;i < n;i++)cout << v[i] << " ";
        //cout << "\n";
        if(j == 1){
            int c , d;
            cin >> c >> d;
            //if(c > d)swap (c , d);
            sigma[c]=1;
            sigma[c + d]=-1;

        }else if(j==2){
            int c , d;
            cin >> c >> d;
            //if(c > d)swap (c , d);
            sigma [c]=-1;
            sigma[c + d]=1;

        }else{
            int cnt=0, cntmax=-1;
            propagate(n);

            for(int i=1;i <= n;i++){
                if(v[i]== v[i - 1]){
                    cnt++;
                }else{
                    cntmax=max(cntmax , cnt);
                    cnt=0;
                }
                //cout << v[i] << " ";
            }
            //cout << "\n";
            cntmax=max(cntmax , cnt);
            cout << cntmax +1 << "\n";

        }
    }
}