CSES - Polkujen määrä I

Muodosta syklitön suunnattu verkko, jonka solmut ovat 1,2,,1001,2,\dots,100. Verkossa tulee olla 100100 erilaista polkua solmusta 11 solmuun 100100. Verkossa saa olla korkeintaan 10001000 kaarta ja jokaisen kaaren tulee olla erilainen.

Toteuta tiedostoon paths1.py funktio create_edges, joka palauttaa verkon rakenteen listana kaaria tupleina. Esimerkiksi lista [(1, 2), (4, 5)] tarkoittaisi, että verkossa on kaksi kaarta 121 \rightarrow 2 ja 454 \rightarrow 5.

Voit testata funktiosi toimintaa kurssimateriaalissa olevan luokan CountPaths avulla. Tehtäväpohjassa metodin count_paths tulisi antaa tulos 100100, kun verkko on oikein muodostettu.

class CountPaths:
    # voit kopioida tämän luokan kurssimateriaalista

def create_edges():
    # TODO

if __name__ == "__main__":
    edges = create_edges()

    counter = CountPaths(range(1, 100 + 1))
    for edge in edges:
        counter.add_edge(edge[0], edge[1])
    print(counter.count_paths(1, 100)) # 100