CSES - Suorakulmiot

Tasossa on kolme suorakulmiota, joiden sivut ovat vaaka- ja pystyakselien suuntaisia. Tehtäväsi on laskea sen alueen pinta-ala, jota peittää vähintään yksi annetuista suorakulmioista.

Esimerkiksi seuraavassa kuvassa suorakulmioiden peittämän alueen pinta-ala on 16. Kuva vastaa koodipohjissa olevaa esimerkkiä.

Voit olettaa, että kaikki koordinaatit ovat kokonaislukuja välillä -10^9 \dots 10^9.

Huomaa, että on liian hidasta käydä läpi kaikki pisteet suorakulmioiden alueelta, vaan sinun tulee keksiä tehokkaampi matemaattinen ratkaisu.

Toteuta funktio area(rec1, rec2, rec3), joka antaa kysytyn pinta-alan. Funktiolle annetaan kolme tuplea, joista jokainen määrittelee yhden suorakulmion. Jokaisessa tuplessa on neljä kokonaislukua x_1, y_1, x_2 ja y_2: suorakulmion vasen ylänurkka on (x_1,y_1) ja oikea alanurkka on (x_2,y_2).

Toteuta funktio tiedostoon rectangles.py.

def area(rec1, rec2, rec3):
    # TODO

if __name__ == "__main__":
    rec1 = (-1,1,1,-1)
    rec2 = (0,3,2,0)
    rec3 = (0,2,3,-2)
    print(area(rec1,rec2,rec3)) # 16