Tanssiaisiin osallistuu n opiskelijaa Kumpulasta ja n opiskelijaa Viikistä. Molempien kampusten opiskelijat on numeroitu 1,2,\dots,n.
Jokaisessa tanssiparissa toinen opiskelija on Kumpulasta ja toinen Viikistä, ja tiedät kaikki parit, jotka suostuvat tanssimaan keskenään. Jokainen opiskelija voi kuulua enintään yhteen tanssipariin. Mikä on suurin määrä pareja, jotka on mahdollista muodostaa?
Toteuta tiedostoon ball.py luokka Ball, jossa on seuraavat metodit:
add_pairmäärittää, että Kumpulan opiskelija a ja Viikin opiskelija b suostuvat tanssimaan keskenäänmax_pairsilmoittaa suurimman mahdollisen tanssiparien määrän
class Ball:
def __init__(self, n):
# TODO
def add_pair(self, a, b):
# TODO
def max_pairs(self):
# TODO
if __name__ == "__main__":
ball = Ball(4)
print(ball.max_pairs()) # 0
ball.add_pair(1, 2)
print(ball.max_pairs()) # 1
ball.add_pair(1, 3)
ball.add_pair(3, 2)
print(ball.max_pairs()) # 2
ball.add_pair(2, 1)
print(ball.max_pairs()) # 3
Yllä olevassa esimerkissä lopputilanteessa voidaan muodostaa seuraavat parit:
- Kumpulan opiskelija 1 tanssii Viikin opiskelijan 3 kanssa
- Kumpulan opiskelija 2 tanssii Viikin opiskelijan 1 kanssa
- Kumpulan opiskelija 3 tanssii Viikin opiskelijan 2 kanssa
Huomaa, että molemmilla kampuksilla on n opiskelijaa. Esimerkiksi Kumpulan opiskelija 1 ja Viikin opiskelija 1 ovat kaksi eri opiskelijaa.
