50066. Hotel Manager

難度:4.7/5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdlib.h>
#include "reservation.h"

int check_insert(RoomStatus *room, int np, int s, int e){
Reservation *prev = NULL;
Reservation *now = room->reservation;
for(; now != NULL; prev = now, now = now->next){
if(e <= now->StartTime) break;
if(s < now->EndTime) return 0;
}

Reservation* new_res = (Reservation*) malloc(sizeof(Reservation));
new_res->nP = np;
new_res->StartTime = s;
new_res->EndTime = e;
if(prev == NULL){
new_res->next = room->reservation;
room->reservation = new_res;
}
else{
prev->next = new_res;
new_res->next = now;
}
return 1;
}

int ReserveRoom(RoomStatus list[], int n, int nP, int StartTime, int EndTime){
for(int i = 0; i < n; i++){
if(list[i].capacity < nP) continue;
if(check_insert(&list[i], nP, StartTime, EndTime) == 1){
return 1;
}
}
return 0;
}


50066. Hotel Manager
https://aaronlin1229.github.io/judgegirl_50066/
Author
Akizumi
Posted on
July 17, 2023
Licensed under