CSES - Yhteydet

Tietoverkossa on nn tietokonetta, jotka on numeroitu 1,2,,n1,2,\dots,n. Koneiden välillä voi olla yksisuuntaisia yhteyksiä. Yhteys aba \rightarrow b tarkoittaa, että koneelta aa voi lähettää viestin koneelle bb.

Tehtäväsi on selvittää yhteyksien luomisen jälkeen, onko jokaiselta koneelta mahdollista lähettää viesti mille tahansa toiselle koneelle. Viesti voi kulkea yhden tai useamman yhteyden kautta.

Toteuta tiedostoon connections.py luokka Connections, jossa on seuraavat metodit:

  • add_link lisää yksisuuntaisen yhteyden koneelta aa koneelle bb
  • check_network ilmoittaa, voiko jokaiselta koneelta lähettää viestin kaikille muille koneille
class Connections:
    def __init__(self, n):
        # TODO

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

    def check_network(self):
        # TODO

if __name__ == "__main__":
    connections = Connections(5)

    connections.add_link(1, 2)
    connections.add_link(2, 3)
    connections.add_link(1, 3)
    connections.add_link(4, 5)

    print(connections.check_network()) # False

    connections.add_link(3, 5)
    connections.add_link(1, 4)

    print(connections.check_network()) # False

    connections.add_link(5, 1)

    print(connections.check_network()) # True