Annettuna on lista, jossa on varauksia päiväväleinä. Jokainen väli on pari (a,b), missä 1 \le a \le b: varaus alkaa päivänä a ja päättyy päivänä b.
Tehtäväsi on tutkia, onko listassa kahta varausta, jotka menevät päällekkäin eli niissä on yksi tai useampi yhteinen päivä.
Esimerkiksi lista [(4,7),(1,2)] tarkoittaa, että ensimmäinen varaus on päivästä 4 päivään 7 ja toinen varaus on päivästä 1 päivään 2. Nämä varaukset eivät mene päällekkäin. Listassa [(4,7),(1,5)] varaukset sen sijaan menevät päällekkäin, koska molemmat varaukset sisältävät päivät 4 ja 5.
Toteuta tiedostoon reservations.py funktio check_overlapping, jolle annetaan varaukset listana. Funktion tulee palauttaa True, jos jotkin kaksi varausta menevät päällekkäin, ja False muuten.
Sinun tulee toteuttaa funktio niin, että se käsittelee tehokkaasti myös suuren määrän varauksia. Funktion tulee antaa vastaus välittömästi myös tehtäväpohjan kahdessa viimeisessä testissä.
import random
def check_overlapping(reservations):
# TODO
if __name__ == "__main__":
print(check_overlapping([])) # False
print(check_overlapping([(1, 3)])) # False
print(check_overlapping([(4, 7), (1, 2)])) # False
print(check_overlapping([(4, 7), (1, 5)])) # True
print(check_overlapping([(1, 1), (2, 2)])) # False
print(check_overlapping([(1, 1), (1, 1)])) # True
print(check_overlapping([(2, 3), (5, 5), (3, 4)])) # True
print(check_overlapping([(2, 3), (5, 5), (1, 4)])) # True
print(check_overlapping([(2, 3), (5, 5), (1, 5)])) # True
reservations = [(day, day) for day in range(1, 10**5+1)]
random.shuffle(reservations)
print(check_overlapping(reservations)) # False
reservations.append((42, 1337))
random.shuffle(reservations)
print(check_overlapping(reservations)) # True
