CSES - Komponentit

Bittimaassa on n kaupunkia, joiden välillä ei ole aluksi teitä. Kaksi kaupunkia kuuluvat samaan komponenttiin, jos niiden välillä pystyy kulkemaan teiden avulla.

Toteuta luokka, jonka avulla pystyy lisäämään tien kahden kaupungin välille sekä laskemaan, montako komponenttia kaupungit muodostavat.

Toteuta luokka Components, jossa on seuraavat metodit:

  • add_road lisää tien kahden kaupungin välille
  • count ilmoittaa komponenttien määrän

Toteuta luokka tiedostoon components.py seuraavan esimerkin mukaisesti.

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

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

    def count(self):
        # TODO

if __name__ == "__main__":
    c = Components(5)
    print(c.count()) # 5
    c.add_road(1, 2)
    c.add_road(1, 3)
    print(c.count()) # 3
    c.add_road(2, 3)
    print(c.count()) # 3
    c.add_road(4, 5)
    print(c.count()) # 2