Cod sursa(job #1138304)

Utilizator manutrutaEmanuel Truta manutruta Data 9 martie 2014 21:12:42
Problema Hotel Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAXN 100005

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

int n, m;
int a[MAXN];
int sp[MAXN];

void sosire(int poz, int val)
{
    for (int i = poz; i < poz + val; i++) {
        a[i] = 1;
    }
}

void plecare(int poz, int val)
{
    for (int i = poz; i < poz + val; i++) {
        a[i] = 0;
    }
}

int query()
{
    int mx = 0;
    for (int i = 1; i <= n; i++) {
        if (a[i] == 0) {
            sp[i] = sp[i - 1] + 1;
        } else {
            sp[i] = 0;
        }
        mx = max(mx, sp[i]);
    }
    return mx;
}

int main()
{
    f >> n >> m;
    for (int i = 1; i <= m; i++) {
        int op, x, y;
        f >> op;
        if (op < 3) {
            f >> x >> y;
        }

        switch (op) {
            case 1: sosire(x, y); break;
            case 2: plecare(x, y); break;
            case 3: g << query() << '\n';
        }
    }

    f.close();
    g.close();
    return 0;
}