CSES - Suurin joukko

Luvut 1,2,,n1,2,\dots,n ovat aluksi jokainen omassa joukossaan. Tehtäväsi on toteuttaa luokka, jossa voi yhdistää kaksi joukkoa sekä hakea suurimman joukon koon.

Toteuta tiedostoon maxset.py luokka MaxSet, jossa on seuraavat metodit:

  • merge yhdistää joukot, joissa on luvut aa ja bb (jos ne ovat eri joukoissa)
  • get_max ilmoittaa suurimman joukon koon

Kummankin metodin tulee toimia tehokkaasti.

class MaxSet:
    def __init__(self, n):
        # TODO

    def merge(self, a, b):
        # TODO

    def get_max(self):
        # TODO

if __name__ == "__main__":
    max_set = MaxSet(5)
    print(max_set.get_max()) # 1

    max_set.merge(1, 2)
    max_set.merge(3, 4)
    max_set.merge(3, 5)
    print(max_set.get_max()) # 3

    max_set.merge(1, 5)
    print(max_set.get_max()) # 5

    max_set.merge(2, 3)
    print(max_set.get_max()) # 5