CSES - Tiedonvälitys

Annettuna on tietoverkko, jossa on n tietokonetta ja niiden välisiä yhteyksiä. Jokaisen yhteyden kautta voi lähettää tietoa koneesta toiseen tietyn määrän bittejä sekunnissa.

Tehtäväsi on tutkia, mikä on suurin mahdollinen tiedon määrä, joka voidaan välittää annetusta koneesta toiseen sekunnissa.

Toteuta tiedostoon download.py luokka Download, jossa on seuraavat metodit:

  • add_link lisää koneesta a koneeseen b yhteyden, joka siirtää x bittiä sekunnissa
  • max_data laskee suurimman mahdollisen siirtomäärän koneesta a koneeseen b
class Download:
    def __init__(self, n):
        # TODO

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

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

if __name__ == "__main__":
    download = Download(4)

    print(download.max_data(1, 4)) # 0

    download.add_link(1, 2, 5)
    download.add_link(2, 4, 6)
    download.add_link(1, 4, 2)
    print(download.max_data(1, 4)) # 7

    download.add_link(1, 3, 4)
    download.add_link(3, 2, 2)
    print(download.max_data(1, 4)) # 8