Esimerkiksi kun $x=5$, yksi mahdollinen ratkaisu muodostuu kaarista
\[(1,3),(1,5),(2,100),(3,2),(3,100),(5,2),(5,3).\]
Tässä tapauksessa polut ovat seuraavat:
- $1 \rightarrow 3 \rightarrow 100$
- $1 \rightarrow 3 \rightarrow 2 \rightarrow 100$
- $1 \rightarrow 5 \rightarrow 2 \rightarrow 100$
- $1 \rightarrow 5 \rightarrow 3 \rightarrow 100$
- $1 \rightarrow 5 \rightarrow 3 \rightarrow 2 \rightarrow 100$
Python
Toteuta tiedostoon
paths.py
funktio create
, joka palauttaa verkon rakenteen listana kaaria tupleina.def create(x): #TODO if __name__ == "__main__": print(create(2)) # esim. [(1,2),(1,100),(2,100)] print(create(5)) print(create(10)) print(create(123456789))Java
Toteuta tiedostoon
Paths.java
metodi create
, joka palauttaa verkon rakenteen listana kaaria Edge
-olioina.import java.util.*; public class Paths { ArrayList<Edge> create(int x) { // TODO } public static void main(String[] args) { Paths p = new Paths(); System.out.println(p.create(2)); // esim. [(1,2),(1,100),(2,100)] System.out.println(p.create(5)); System.out.println(p.create(10)); System.out.println(p.create(123456789)); } }Luokka
Edge
on toteutettu seuraavasti ja se on valmiina palvelimella, eli koodisi voi olettaa, että tällainen luokka on olemassa.public class Edge { int a, b; public Edge(int a, int b) { this.a = a; this.b = b; } public String toString() { return "(" + a + "," + b + ")"; } }