Pagini recente » Cod sursa (job #578796) | Cod sursa (job #688181) | Cod sursa (job #1132559) | Cod sursa (job #1641686) | Cod sursa (job #3231427)
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100000
int main() {
FILE *input = fopen("hotel.in", "r");
FILE *output = fopen("hotel.out", "w");
if (input == NULL || output == NULL) {
printf("Nu s-a putut deschide fisierul!");
return 1;
}
int N, P;
fscanf(input, "%d %d", &N, &P);
int *hotel = (int *)malloc((MAX_N + 1) * sizeof(int));
for (int i = 0; i <= MAX_N; ++i) {
hotel[i] = 1;
}
int max_consecutive_length = N;
int current_length = 0;
int max_length = 0;
for (int i = 0; i < P; ++i) {
int type, start, members;
fscanf(input, "%d", &type);
if (type == 1) {
fscanf(input, "%d %d", &start, &members);
for (int j = start; j < start + members; ++j) {
hotel[j] = 0;
}
} else if (type == 2) {
fscanf(input, "%d %d", &start, &members);
for (int j = start; j < start + members; ++j) {
hotel[j] = 1;
}
} else if (type == 3) {
fprintf(output, "%d\n", max_length);
}
if (hotel[start] == 1) {
current_length++;
max_length = (current_length > max_length) ? current_length : max_length;
} else {
current_length = 0;
}
}
fclose(input);
fclose(output);
free(hotel);
return 0;
}