Cod sursa(job #3231428)

Utilizator catalinaionela77Catalina Ionela Florescu catalinaionela77 Data 26 mai 2024 13:23:45
Problema Hotel Scor 50
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>

#define MAX_N 100001

int rooms[MAX_N];

int max(int a, int b) {
    return (a > b) ? a : b;
}

int max_seq_length(int n) {
    int max_length = 0;
    int current_length = 0;

    for (int i = 1; i <= n; i++) {
        if (rooms[i] == 0) {
            current_length++;
            max_length = max(max_length, current_length);
        } else {
            current_length = 0;
        }
    }

    return max_length;
}

int main() {
    FILE *fin = fopen("hotel.in", "r");
    FILE *fout = fopen("hotel.out", "w");

    int N, P;
    fscanf(fin, "%d %d", &N, &P);

    for (int i = 0; i < P; i++) {
        int op, start, M;
        fscanf(fin, "%d", &op);

        if (op == 1) {
            fscanf(fin, "%d %d", &start, &M);
            for (int j = start; j < start + M; j++) {
                rooms[j] = 1;
            }
        } else if (op == 2) {
            fscanf(fin, "%d %d", &start, &M);
            for (int j = start; j < start + M; j++) {
                rooms[j] = 0;
            }
        } else if (op == 3) {
            fprintf(fout, "%d\n", max_seq_length(N));
        }
    }

    fclose(fin);
    fclose(fout);

    return 0;
}