Luvut 1,2,\dots,n ovat aluksi jokainen omassa joukossaan. Tehtäväsi on toteuttaa luokka, jossa voi yhdistää kaksi joukkoa sekä hakea suurimman joukon koon.
Voit olettaa, että n on enintään 10^5 ja luokan metodeita kutsutaan enintään 10^5 kertaa.
Toteuta tiedostoon maxset.py
luokka MaxSet
, jossa on seuraavat metodit:
- konstruktori, jolle annetaan lukujen määrä
merge
yhdistää joukot, joissa on luvut a ja b (jos ne ovat eri joukoissa)get_max
ilmoittaa suurimman joukon koon
class MaxSet: def __init__(self,n): # TODO def merge(self,a,b): # TODO def get_max(self): # TODO if __name__ == "__main__": m = MaxSet(5) print(m.get_max()) # 1 m.merge(1,2) m.merge(3,4) m.merge(3,5) print(m.get_max()) # 3 m.merge(1,5) print(m.get_max()) # 5