diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..18a876ad94edb63ea8399b491764c759aeea9482 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +GCC = gcc +DJ = ./dijkstra + +run : compile dijkstra + @read -p "Jumlah Nodes : " node && ${DJ} 4 $$node > answer.txt + +compile: dijkstra.c + ${GCC} -g -Wall -o dijkstra dijkstra.c -fopenmp \ No newline at end of file diff --git a/answer.txt b/answer.txt new file mode 100644 index 0000000000000000000000000000000000000000..59417fa3cb212a2a71c093ac7fb5887ce58b0911 --- /dev/null +++ b/answer.txt @@ -0,0 +1,101 @@ +~=== Hasil ===~ +0 6 7 6 5 4 8 6 5 4 8 6 6 3 6 8 8 9 10 4 9 6 9 5 5 8 2 3 10 7 7 6 6 6 5 10 7 7 11 4 6 6 5 7 6 10 4 8 6 9 4 3 5 6 7 6 7 7 4 8 8 4 6 7 6 8 8 5 9 7 7 8 5 8 6 7 6 5 7 1 8 7 6 6 9 6 8 8 6 7 7 7 4 5 7 2 3 9 6 8 +6 0 7 5 3 7 6 8 9 8 6 2 9 5 2 8 6 6 8 8 8 6 9 3 7 6 6 7 5 5 7 6 3 6 7 12 4 6 7 6 8 8 3 9 4 8 5 2 8 6 6 3 5 7 6 8 5 7 2 7 6 8 4 5 6 6 9 7 9 8 5 6 1 8 6 6 9 5 7 5 7 7 8 8 8 2 7 6 6 7 5 7 8 8 5 8 6 12 2 6 +7 7 0 7 6 7 7 9 7 9 4 7 10 4 7 8 1 8 11 7 9 9 8 6 7 7 9 8 6 6 8 5 7 6 6 9 9 10 11 3 9 8 4 8 5 8 6 9 6 9 7 6 6 5 8 5 4 6 5 9 5 11 3 6 7 5 10 4 6 5 8 7 6 1 7 8 6 5 10 8 8 6 5 8 8 7 7 7 5 8 2 6 7 8 6 9 7 13 7 7 +6 5 7 0 6 8 6 9 6 7 9 5 9 3 5 10 8 9 10 5 10 6 9 5 6 8 6 6 10 8 9 6 6 7 5 10 8 7 8 4 9 7 6 8 7 10 7 7 3 6 7 5 7 6 8 6 8 8 5 8 9 8 7 6 6 9 10 5 12 7 7 6 4 8 7 9 10 4 7 7 5 8 6 7 9 3 8 9 7 8 8 9 4 9 8 7 8 12 6 9 +5 3 6 6 0 7 7 7 8 7 5 3 7 4 3 7 5 7 7 7 9 7 9 5 6 3 5 6 8 4 4 5 4 5 6 11 7 7 8 5 5 7 2 7 3 5 4 5 8 8 5 2 4 6 7 7 2 6 1 5 5 9 3 5 5 3 8 6 8 7 6 8 2 6 6 7 8 4 8 4 7 7 7 7 8 3 7 5 6 6 4 6 7 7 4 7 5 9 5 5 +4 7 7 8 7 0 8 5 6 5 10 7 7 7 8 7 6 9 11 5 9 9 11 6 7 8 2 4 11 9 9 6 6 8 5 10 3 6 13 8 8 8 7 8 8 10 6 9 7 8 3 5 4 10 10 6 6 8 6 9 9 7 7 8 5 7 8 7 10 7 9 9 7 8 9 9 8 7 10 3 9 8 8 7 9 8 8 9 7 8 7 9 4 1 9 5 5 9 5 8 +8 6 7 6 7 8 0 10 9 8 9 4 10 5 6 10 8 8 11 8 10 8 11 6 8 9 9 8 11 8 7 8 5 7 9 6 9 10 10 4 8 9 7 10 7 11 5 8 7 6 8 7 7 6 9 2 7 10 6 11 10 10 8 7 8 6 7 3 13 10 9 8 5 8 8 8 10 9 7 8 5 5 6 10 12 6 11 9 6 10 9 11 10 7 8 9 6 12 7 9 +6 8 9 9 7 5 10 0 5 4 7 6 6 8 8 6 8 8 6 4 10 8 11 6 7 9 6 3 11 6 9 8 5 7 8 12 8 5 12 7 10 8 6 7 5 9 6 10 6 7 2 7 3 9 9 9 5 9 7 8 8 6 6 7 4 6 7 8 9 10 8 8 7 9 8 10 9 9 9 5 8 7 9 6 8 8 7 7 6 7 7 8 7 4 5 4 5 11 6 3 +5 9 7 6 8 6 9 5 0 3 8 7 5 7 9 7 7 4 11 1 6 7 10 7 8 9 7 2 12 8 8 8 6 9 7 11 9 6 9 6 7 8 8 4 7 7 5 9 3 6 3 8 4 8 6 8 6 6 8 7 8 5 7 4 5 7 8 7 7 5 7 5 8 8 5 5 6 8 8 6 5 4 8 3 9 7 8 5 3 4 8 5 8 5 8 3 4 10 7 8 +4 8 9 7 7 5 8 4 3 0 9 6 4 7 8 6 8 7 8 2 9 6 9 6 7 6 6 1 12 7 6 8 5 8 8 11 8 5 10 7 7 8 7 5 7 8 4 9 4 7 2 7 3 9 7 7 5 7 7 4 8 4 6 5 4 6 7 6 7 8 6 5 7 9 6 8 7 9 7 5 6 5 9 4 8 8 7 6 4 5 7 6 7 4 7 2 3 9 6 7 +8 6 4 9 5 10 9 7 8 9 0 5 9 7 6 7 5 9 10 7 8 7 4 7 5 6 8 8 8 3 9 8 6 4 9 13 10 10 11 7 10 6 3 6 2 8 7 8 9 11 8 5 7 6 11 9 5 7 4 6 6 9 4 9 8 6 7 8 9 8 8 11 5 3 10 9 3 7 8 7 11 10 9 5 9 6 8 4 9 5 5 3 10 10 5 7 7 13 8 4 +6 2 7 5 3 7 4 6 7 6 5 0 8 4 2 6 6 4 7 6 6 5 8 2 6 6 6 5 7 4 7 4 1 5 5 10 5 6 7 5 8 7 3 8 3 8 5 4 8 7 4 3 3 7 7 6 5 7 2 7 6 7 4 5 4 6 7 6 9 7 5 8 1 8 6 4 8 5 6 5 7 7 7 7 8 2 7 5 6 6 5 7 6 6 5 6 6 11 3 5 +6 9 10 9 7 7 10 6 5 4 9 8 0 9 9 8 9 9 10 4 10 8 10 8 6 4 8 3 10 7 10 6 7 6 7 13 10 7 10 9 10 5 6 7 7 6 6 11 6 9 4 8 5 10 9 9 7 9 7 6 5 6 7 7 6 8 8 8 9 9 8 8 8 11 8 8 9 8 9 7 8 5 11 6 4 8 3 8 6 7 8 7 8 6 4 4 5 11 8 6 +3 5 4 3 4 7 5 8 7 7 7 4 9 0 5 8 5 6 7 6 8 5 8 2 6 7 5 6 10 6 6 6 3 7 7 7 5 9 10 1 7 7 4 9 5 9 4 7 4 7 6 2 5 3 8 3 6 6 3 9 7 7 5 8 6 7 9 2 10 7 6 5 4 5 7 8 9 4 6 4 6 8 3 8 9 5 9 7 7 8 6 6 7 8 6 5 5 11 3 7 +6 2 7 5 3 8 6 8 9 8 6 2 9 5 0 8 6 5 9 8 7 6 9 4 7 6 6 7 7 5 7 6 3 6 7 12 6 6 7 6 8 8 3 9 4 8 5 4 8 8 6 3 5 7 7 8 5 7 2 7 6 8 4 5 6 6 9 7 9 8 5 8 1 8 6 6 9 5 7 5 7 7 8 8 8 2 7 6 6 7 5 7 8 8 5 8 6 12 4 6 +8 8 8 10 7 7 10 6 7 6 7 6 8 8 8 0 7 8 11 6 10 8 7 6 7 5 9 5 11 8 11 7 5 7 8 12 9 7 13 9 10 8 7 8 8 3 8 10 8 7 4 9 3 11 11 10 5 8 8 7 8 6 6 9 4 6 7 10 10 9 9 10 7 9 10 10 8 9 9 8 8 9 11 7 10 8 9 7 8 6 6 9 7 6 9 6 7 13 7 9 +8 6 1 8 5 6 8 8 7 8 5 6 9 5 6 7 0 7 12 6 8 9 9 7 6 6 8 7 5 5 8 4 7 5 5 10 9 9 10 4 8 7 3 7 4 7 7 8 7 8 6 5 5 6 7 6 3 5 4 8 4 10 2 5 6 4 9 5 5 4 8 6 5 2 6 7 5 6 10 7 7 5 6 7 7 6 6 6 4 7 1 5 6 7 5 8 8 12 8 6 +9 6 8 9 7 9 8 8 4 7 9 4 9 6 5 8 7 0 9 5 2 6 9 4 9 8 9 6 11 8 8 6 3 9 7 11 7 9 9 7 7 10 7 6 7 10 9 8 7 7 6 7 5 9 6 9 7 8 6 10 7 8 8 4 6 8 9 8 11 7 7 5 5 9 5 8 10 8 5 9 6 4 9 7 10 6 9 9 3 8 8 7 8 8 9 7 8 10 5 9 +10 8 11 10 7 11 11 6 11 8 10 7 10 7 9 11 12 9 0 10 11 8 11 5 7 6 12 9 12 7 11 8 6 8 9 14 8 11 14 8 12 8 9 13 8 8 11 10 8 11 8 9 8 10 12 10 9 12 8 4 12 9 10 12 9 10 12 9 7 11 9 12 8 12 12 11 13 9 9 11 10 13 10 12 11 9 10 10 12 11 11 12 10 10 9 10 11 10 6 7 +4 8 7 5 7 5 8 4 1 2 7 6 4 6 8 6 6 5 10 0 7 6 9 6 7 8 6 1 11 7 7 8 5 8 8 10 8 5 8 5 6 7 7 3 6 6 4 8 2 5 2 7 3 7 5 7 5 5 7 6 7 4 6 3 4 6 7 6 7 6 6 4 7 8 4 6 5 7 7 5 4 3 7 2 8 6 7 4 2 3 7 4 7 4 7 2 3 9 6 7 +9 8 9 10 9 9 10 10 6 9 8 6 10 8 7 10 8 2 11 7 0 8 11 6 9 6 7 8 12 9 8 4 5 8 5 13 9 11 11 9 9 9 9 8 9 8 11 10 9 9 8 9 7 11 8 11 9 8 8 8 9 10 10 6 8 10 11 10 13 7 9 7 7 10 7 10 10 10 7 8 8 6 11 7 9 8 10 9 5 8 9 5 6 9 8 9 10 12 7 10 +6 6 9 6 7 9 8 8 7 6 7 5 8 5 6 8 9 6 8 6 8 0 3 3 7 9 8 5 11 6 8 7 4 7 8 10 6 9 10 6 7 8 7 9 7 7 8 8 6 9 6 7 6 8 4 6 6 5 6 7 8 2 7 6 7 5 10 7 11 6 1 8 5 8 5 9 8 8 1 7 8 5 8 8 5 6 6 8 6 7 8 8 9 8 9 4 7 6 4 9 +9 9 8 9 9 11 11 11 10 9 4 8 10 8 9 7 9 9 11 9 11 3 0 6 4 6 9 8 9 6 11 8 7 5 9 13 9 12 13 9 10 5 7 9 6 4 11 11 9 12 9 8 8 9 7 9 9 8 8 8 9 5 8 9 9 8 11 10 13 9 4 11 8 7 8 12 7 6 4 8 11 8 11 8 8 9 7 8 9 7 9 7 10 11 9 7 10 9 7 8 +5 3 6 5 5 6 6 6 7 6 7 2 8 2 4 6 7 4 5 6 6 3 6 0 7 6 7 5 8 6 8 4 1 7 5 9 3 7 9 3 9 8 5 9 5 8 6 5 6 7 4 4 3 5 7 5 5 7 4 8 8 5 6 7 4 6 7 4 11 7 4 7 3 7 8 6 10 6 4 6 8 8 5 8 8 4 9 7 7 8 7 8 6 6 7 6 6 9 1 7 +5 7 7 6 6 7 8 7 8 7 5 6 6 6 7 7 6 9 7 7 9 7 4 7 0 3 5 6 5 2 8 5 6 1 6 13 9 8 11 7 7 1 4 8 3 5 7 9 6 8 5 4 4 5 6 9 5 8 5 5 5 9 5 6 5 6 8 8 10 8 8 8 6 6 5 8 8 2 7 4 8 8 9 7 4 7 3 5 7 6 6 8 7 7 6 7 6 11 7 5 +8 6 7 8 3 8 9 9 9 6 6 6 4 7 6 5 6 8 6 8 6 9 6 6 3 0 6 7 6 3 6 2 5 2 3 13 9 10 11 8 7 4 5 7 4 2 7 8 9 9 8 5 7 6 9 10 5 6 4 2 6 7 4 8 7 6 11 9 9 5 9 7 5 8 8 9 7 5 8 7 8 9 8 6 7 6 6 6 9 5 5 8 4 9 7 8 8 11 7 6 +2 6 9 6 5 2 9 6 7 6 8 6 8 5 6 9 8 9 12 6 7 8 9 7 5 6 0 5 10 7 7 4 7 6 3 11 5 8 11 6 6 6 5 8 6 8 4 8 8 8 5 3 6 8 9 7 7 6 4 8 8 6 6 9 5 8 8 6 11 5 9 7 5 9 8 7 6 5 9 1 9 9 8 8 9 6 8 8 8 8 7 7 2 3 7 4 3 7 6 8 +3 7 8 6 6 4 8 3 2 1 8 5 3 6 7 5 7 6 9 1 8 5 8 5 6 7 5 0 11 7 7 7 4 7 7 10 7 4 9 6 7 7 6 4 6 7 3 9 3 6 1 6 2 8 6 6 4 6 6 5 7 3 5 4 3 5 6 5 6 7 5 5 6 8 5 7 6 8 6 4 5 4 8 3 7 7 6 5 3 4 6 5 6 3 6 1 2 8 5 6 +10 5 6 10 8 11 11 11 12 12 8 7 10 10 7 11 5 11 12 11 12 11 9 8 5 6 10 11 0 5 12 8 8 4 9 15 9 11 12 9 12 6 7 11 6 8 10 7 11 11 10 8 9 8 11 11 8 10 7 8 9 13 7 10 10 9 13 10 10 9 10 11 6 7 10 11 10 7 10 9 12 10 11 10 9 7 8 8 9 9 6 10 10 12 9 11 11 15 7 8 +7 5 6 8 4 9 8 6 8 7 3 4 7 6 5 8 5 8 7 7 9 6 6 6 2 3 7 7 5 0 8 5 5 1 6 11 9 9 10 5 9 3 2 6 1 5 6 7 8 10 7 4 6 3 8 7 4 6 3 3 5 8 3 8 7 5 8 6 8 7 7 10 4 6 7 8 6 4 5 6 10 9 7 5 6 5 5 3 8 4 4 6 7 9 4 6 7 10 7 3 +7 7 8 9 4 9 7 9 8 6 9 7 10 6 7 11 8 8 11 7 8 8 11 8 8 6 7 7 12 8 0 4 7 8 5 9 11 11 9 5 1 9 6 7 7 8 6 9 8 6 8 6 8 7 4 5 6 3 5 8 9 9 7 4 9 7 12 4 12 4 7 6 6 9 3 8 7 6 9 6 6 6 7 6 11 7 11 6 5 5 8 8 6 10 8 7 7 5 9 6 +6 6 5 6 5 6 8 8 8 8 8 4 6 6 6 7 4 6 8 8 4 7 8 4 5 2 4 7 8 5 4 0 3 4 1 11 7 9 9 7 5 6 7 6 6 4 8 8 9 8 6 7 5 8 8 9 7 4 6 4 8 8 6 8 5 8 9 8 9 3 8 5 5 6 7 8 8 7 8 5 9 8 9 7 9 6 8 7 7 6 5 9 2 7 9 8 7 9 5 8 +6 3 7 6 4 6 5 5 6 5 6 1 7 3 3 5 7 3 6 5 5 4 7 1 6 5 7 4 8 5 7 3 0 6 4 10 4 6 8 4 8 7 4 8 4 7 6 5 7 6 3 4 2 6 8 6 4 7 3 7 7 6 5 6 3 5 6 5 10 6 5 8 2 8 7 5 9 6 5 6 7 7 6 7 9 3 8 6 6 7 6 8 5 5 6 5 5 10 2 6 +6 6 6 7 5 8 7 7 9 8 4 5 6 7 6 7 5 9 8 8 8 7 5 7 1 2 6 7 4 1 8 4 6 0 5 12 10 9 11 6 8 2 3 7 2 4 7 8 7 9 6 5 5 4 7 8 4 7 4 4 6 9 4 7 6 5 9 7 9 7 8 9 5 7 6 9 7 3 6 5 9 8 8 6 5 6 4 4 7 5 5 7 6 8 5 7 7 11 8 4 +5 7 6 5 6 5 9 8 7 8 9 5 7 7 7 8 5 7 9 8 5 8 9 5 6 3 3 7 9 6 5 1 4 5 0 10 7 9 10 7 6 7 8 5 7 5 7 8 8 7 6 6 5 9 8 9 7 3 7 5 9 9 7 7 4 8 9 8 10 2 9 4 6 7 7 9 7 8 9 4 8 7 9 6 10 7 9 6 6 5 6 8 1 6 10 7 6 10 6 9 +10 12 9 10 11 10 6 12 11 11 13 10 13 7 12 12 10 11 14 10 13 10 13 9 13 13 11 10 15 11 9 11 10 12 10 0 12 13 14 6 10 14 11 7 12 12 7 10 9 12 10 9 9 8 10 4 9 11 10 14 12 12 10 9 10 8 13 5 7 10 11 6 11 10 9 12 11 11 9 10 11 9 8 8 14 10 14 10 8 9 11 10 11 9 10 11 8 14 10 12 +7 4 9 8 7 3 9 8 9 8 10 5 10 5 6 9 9 7 8 8 9 6 9 3 9 9 5 7 9 9 11 7 4 10 7 12 0 9 11 6 11 10 7 11 8 11 9 6 9 9 6 5 6 8 10 8 8 9 6 11 10 8 8 9 6 9 10 7 13 9 7 10 5 10 10 9 11 7 7 6 10 11 8 10 11 6 11 10 10 9 9 9 7 4 9 8 8 12 2 10 +7 6 10 7 7 6 10 5 6 5 10 6 7 9 6 7 9 9 11 5 11 9 12 7 8 10 8 4 11 9 11 9 6 9 9 13 9 0 9 8 10 9 7 8 8 10 7 8 7 8 3 7 4 10 9 10 6 10 6 9 9 7 7 7 5 7 8 9 10 11 9 9 5 10 8 10 10 9 10 7 9 8 10 7 9 4 8 9 7 8 8 8 8 5 5 5 6 12 7 7 +11 7 11 8 8 13 10 12 9 10 11 7 10 10 7 13 10 9 14 8 11 10 13 9 11 11 11 9 12 10 9 9 8 11 10 14 11 9 0 9 8 12 8 11 9 13 10 9 9 8 10 8 10 11 7 11 10 11 7 10 11 12 9 5 11 11 14 10 7 10 9 8 6 12 6 11 13 9 11 10 7 5 11 10 11 5 10 11 6 11 10 12 11 12 10 10 11 12 9 11 +4 6 3 4 5 8 4 7 6 7 7 5 9 1 6 9 4 7 8 5 9 6 9 3 7 8 6 6 9 5 5 7 4 6 7 6 6 8 9 0 6 8 5 8 6 9 3 8 3 6 7 3 6 2 9 2 7 7 4 8 8 8 6 7 7 6 9 1 9 8 7 6 5 4 8 9 8 5 7 5 5 8 2 7 8 4 9 8 7 8 5 7 8 7 6 6 4 10 4 8 +6 8 9 9 5 8 8 10 7 7 10 8 10 7 8 10 8 7 12 6 9 7 10 9 7 7 6 7 12 9 1 5 8 8 6 10 11 10 8 6 0 8 7 8 8 9 7 9 7 5 8 7 9 8 3 6 7 4 6 9 9 8 8 3 8 8 12 5 13 5 6 5 7 9 2 9 8 5 8 5 5 5 8 7 10 6 10 7 4 6 9 9 7 9 8 6 7 4 10 7 +6 8 8 7 7 8 9 8 8 8 6 7 5 7 8 8 7 10 8 7 9 8 5 8 1 4 6 7 6 3 9 6 7 2 7 14 10 9 12 8 8 0 5 9 4 6 8 10 5 8 6 5 5 6 7 10 6 9 6 6 4 10 6 7 6 7 9 9 11 9 9 9 7 7 6 7 9 3 8 5 7 9 10 8 3 7 2 6 8 7 7 9 8 8 7 8 7 12 8 6 +5 3 4 6 2 7 7 6 8 7 3 3 6 4 3 7 3 7 9 7 9 7 7 5 4 5 5 6 7 2 6 7 4 3 8 11 7 7 8 5 7 5 0 6 1 7 4 5 8 8 5 2 4 4 8 7 2 6 1 5 3 8 1 6 5 3 6 6 6 7 6 9 2 5 7 6 6 4 7 4 8 8 7 5 6 3 5 3 7 4 2 5 7 7 2 6 5 11 5 3 +7 9 8 8 7 8 10 7 4 5 6 8 7 9 9 8 7 6 13 3 8 9 9 9 8 7 8 4 11 6 7 6 8 7 5 7 11 8 11 8 8 9 6 0 5 5 7 11 5 8 5 7 6 9 8 8 5 4 7 9 7 7 6 6 7 4 10 9 10 3 8 7 8 9 7 8 4 9 10 8 7 6 8 1 10 9 9 3 5 2 7 3 6 7 6 5 6 12 9 7 +6 4 5 7 3 8 7 5 7 7 2 3 7 5 4 8 4 7 8 6 9 7 6 5 3 4 6 6 6 1 7 6 4 2 7 12 8 8 9 6 8 4 1 5 0 6 5 6 8 9 6 3 5 4 9 8 3 5 2 4 4 7 2 7 6 4 7 7 7 6 7 10 3 5 8 7 5 5 6 5 9 9 8 4 7 4 6 2 8 3 3 5 8 8 3 5 6 11 6 2 +10 8 8 10 5 10 11 9 7 8 8 8 6 9 8 3 7 10 8 6 8 7 4 8 5 2 8 7 8 5 8 4 7 4 5 12 11 10 13 9 9 6 7 5 6 0 9 10 8 10 7 7 6 8 11 9 7 5 6 4 8 9 6 9 7 8 10 8 10 6 8 9 7 9 10 9 5 7 8 9 10 9 10 4 9 8 8 4 8 3 6 6 6 9 9 8 9 13 9 8 +4 5 6 7 4 6 5 6 5 4 7 5 6 4 5 8 7 9 11 4 11 8 11 6 7 7 4 3 10 6 6 8 6 7 7 7 9 7 10 3 7 8 4 7 5 9 0 7 6 9 4 4 5 5 9 3 6 8 3 8 7 6 5 7 6 7 6 2 9 9 8 8 4 7 8 9 5 6 8 3 8 7 5 6 10 5 9 7 6 7 6 6 6 6 3 4 1 11 7 5 +8 2 9 7 5 9 8 10 9 9 8 4 11 7 4 10 8 8 10 8 10 8 11 5 9 8 8 9 7 7 9 8 5 8 8 10 6 8 9 8 9 10 5 11 6 10 7 0 7 4 8 5 7 9 8 10 7 9 4 9 8 10 6 7 7 8 11 9 11 10 7 4 3 10 7 8 11 7 9 7 5 7 10 10 10 4 9 8 6 9 7 9 9 10 7 10 8 13 4 8 +6 8 6 3 8 7 7 6 3 4 9 8 6 4 8 8 7 7 8 2 9 6 9 6 6 9 8 3 11 8 8 9 7 7 8 9 9 7 9 3 7 5 8 5 8 8 6 7 0 3 4 6 5 5 6 5 7 7 7 8 9 6 8 4 6 8 7 4 9 8 7 6 7 7 5 8 7 6 7 7 2 5 5 4 8 6 7 6 4 5 8 6 7 6 9 4 5 11 7 9 +9 6 9 6 8 8 6 7 6 7 11 7 9 7 8 7 8 7 11 5 9 9 12 7 8 9 8 6 11 10 6 8 6 9 7 12 9 8 8 6 5 8 8 8 9 10 9 4 3 0 5 9 4 8 5 8 6 9 8 11 9 9 7 3 3 7 8 7 12 8 8 6 7 10 4 11 10 7 10 9 1 5 8 7 10 6 10 9 4 8 8 9 6 7 10 7 8 9 7 10 +4 6 7 7 5 3 8 2 3 2 8 4 4 6 6 4 6 6 8 2 8 6 9 4 5 8 5 1 10 7 8 6 3 6 6 10 6 3 10 7 8 6 5 5 6 7 4 8 4 5 0 6 1 9 7 7 3 7 6 6 6 4 4 5 2 4 5 6 7 8 6 6 5 7 6 8 7 7 7 4 6 5 9 4 6 6 5 6 4 5 5 6 5 2 7 2 3 9 4 5 +3 3 6 5 2 5 7 7 8 7 5 3 8 2 3 9 5 7 9 7 9 7 8 4 4 5 3 6 8 4 6 7 4 5 6 9 5 7 8 3 7 5 2 7 3 7 4 5 6 9 6 0 6 5 6 5 4 4 1 7 5 7 3 6 7 5 8 4 8 5 6 7 2 6 5 7 7 2 8 2 8 8 5 6 8 3 7 5 7 6 4 4 5 6 4 5 4 10 3 5 +5 5 6 7 4 4 7 3 4 3 7 3 5 5 5 3 5 5 8 3 7 6 8 3 4 7 6 2 9 6 8 5 2 5 5 9 6 4 10 6 9 5 4 6 5 6 5 7 5 4 1 6 0 8 8 7 2 8 5 7 5 5 3 6 1 3 4 7 8 7 7 7 4 6 7 7 8 6 7 5 5 6 8 5 7 5 6 7 5 6 4 7 4 3 6 3 4 10 4 6 +6 7 5 6 6 10 6 9 8 9 6 7 10 3 7 11 6 9 10 7 11 8 9 5 5 6 8 8 8 3 7 8 6 4 9 8 8 10 11 2 8 6 4 9 4 8 5 9 5 8 9 5 8 0 11 4 6 9 5 6 7 10 5 9 9 7 10 3 10 10 9 8 6 6 10 9 9 7 8 7 7 10 4 8 9 6 8 6 9 7 6 9 10 9 6 8 6 12 6 6 +7 6 8 8 7 10 9 9 6 7 11 7 9 8 7 11 7 6 12 5 8 4 7 7 6 9 9 6 11 8 4 8 8 7 8 10 10 9 7 9 3 7 8 8 9 11 9 8 6 5 7 6 8 11 0 9 8 7 7 10 8 6 9 2 8 7 11 8 12 7 3 4 6 8 1 11 10 4 5 8 4 4 11 7 9 5 9 9 3 8 8 9 9 9 7 5 8 7 8 9 +6 8 5 6 7 6 2 9 8 7 9 6 9 3 8 10 6 9 10 7 11 6 9 5 9 10 7 6 11 7 5 9 6 8 9 4 8 10 11 2 6 10 7 8 8 9 3 10 5 8 7 5 7 4 9 0 5 8 6 10 8 8 6 9 8 4 9 1 11 9 7 8 7 6 8 8 8 7 5 6 7 7 4 9 10 6 10 10 8 10 7 9 9 5 6 7 4 10 6 8 +7 5 4 8 2 6 7 5 6 5 5 5 7 6 5 5 3 7 9 5 9 6 9 5 5 5 7 4 8 4 6 7 4 4 7 9 8 6 10 7 7 6 2 5 3 7 6 7 7 6 3 4 2 6 8 5 0 8 3 7 3 7 1 6 3 1 6 6 6 7 5 7 4 4 7 6 8 6 7 6 7 6 9 6 6 5 5 5 5 6 2 6 6 5 4 5 6 11 6 5 +7 7 6 8 6 8 10 9 6 7 7 7 9 6 7 8 5 8 12 5 8 5 8 7 8 6 6 6 10 6 3 4 7 7 3 11 9 10 11 7 4 9 6 4 5 5 8 9 7 9 7 4 8 9 7 8 8 0 5 8 7 7 7 6 7 8 12 7 10 1 6 7 6 7 6 8 4 6 6 6 8 6 9 3 10 7 9 3 5 2 6 5 4 9 8 7 8 8 7 7 +4 2 5 5 1 6 6 7 8 7 4 2 7 3 2 8 4 6 8 7 8 6 8 4 5 4 4 6 7 3 5 6 3 4 7 10 6 6 7 4 6 6 1 7 2 6 3 4 7 8 6 1 5 5 7 6 3 5 0 6 4 8 2 5 6 4 7 5 7 6 5 8 1 6 6 6 7 3 7 3 7 7 6 6 7 2 6 4 6 5 3 5 6 7 3 6 4 10 4 4 +8 7 9 8 5 9 11 8 7 4 6 7 6 9 7 7 8 10 4 6 8 7 8 8 5 2 8 5 8 3 8 4 7 4 5 14 11 9 10 8 9 6 5 9 4 4 8 9 8 11 6 7 7 6 10 10 7 8 6 0 8 5 6 8 8 8 10 9 11 7 8 9 6 9 9 11 9 7 8 9 10 9 6 8 9 5 8 6 8 7 7 9 6 8 6 6 7 13 9 6 +8 6 5 9 5 9 10 8 8 8 6 6 5 7 6 8 4 7 12 7 9 8 9 8 5 6 8 7 9 5 9 8 7 6 9 12 10 9 11 8 9 4 3 7 4 8 7 8 9 9 6 5 5 7 8 8 3 7 4 8 0 10 2 6 6 4 9 9 7 8 8 7 5 6 7 3 7 7 9 7 8 6 10 6 3 6 2 4 5 5 3 7 9 8 5 8 8 13 8 6 +4 8 11 8 9 7 10 6 5 4 9 7 6 7 8 6 10 8 9 4 10 2 5 5 9 7 6 3 13 8 9 8 6 9 9 12 8 7 12 8 8 10 8 7 7 9 6 10 6 9 4 7 5 10 6 8 7 7 8 5 10 0 8 7 6 7 9 8 9 8 3 8 7 10 6 10 9 9 3 5 8 7 10 6 7 8 8 8 6 7 9 8 8 6 9 2 5 8 6 9 +6 4 3 7 3 7 8 6 7 6 4 4 7 5 4 6 2 8 10 6 10 7 8 6 5 4 6 5 7 3 7 6 5 4 7 10 8 7 9 6 8 6 1 6 2 6 5 6 8 7 4 3 3 5 9 6 1 7 2 6 2 8 0 7 4 2 7 7 5 6 6 8 3 4 8 5 7 5 8 5 8 7 8 6 5 4 4 4 6 5 1 5 7 6 3 6 6 12 6 4 +7 5 6 6 5 8 7 7 4 5 9 5 7 8 5 9 5 4 12 3 6 6 9 7 6 8 9 4 10 8 4 8 6 7 7 9 9 7 5 7 3 7 6 6 7 9 7 7 4 3 5 6 6 9 2 9 6 6 5 8 6 7 7 0 6 7 10 8 10 5 5 3 4 7 1 9 8 4 7 8 2 2 9 5 7 3 8 7 1 6 6 7 8 7 7 5 6 7 7 9 +6 6 7 6 5 5 8 4 5 4 8 4 6 6 6 4 6 6 9 4 8 7 9 4 5 7 5 3 10 7 9 5 3 6 4 10 6 5 11 7 8 6 5 7 6 7 6 7 6 3 2 7 1 9 8 8 3 7 6 8 6 6 4 6 0 4 5 8 9 6 8 8 5 7 7 8 9 7 8 6 4 7 9 6 8 6 7 8 6 7 5 8 3 4 7 4 5 11 4 7 +8 6 5 9 3 7 6 6 7 6 6 6 8 7 6 6 4 8 10 6 10 5 8 6 6 6 8 5 9 5 7 8 5 5 8 8 9 7 11 6 8 7 3 4 4 8 7 8 8 7 4 5 3 7 7 4 1 8 4 8 4 7 2 7 4 0 7 5 7 7 4 8 5 5 8 7 8 7 6 7 8 7 8 5 7 6 6 6 6 6 3 7 7 6 5 6 7 11 7 4 +8 9 10 10 8 8 7 7 8 7 7 7 8 9 9 7 9 9 12 7 11 10 11 7 8 11 8 6 13 8 12 9 6 9 9 13 10 8 14 9 12 9 6 10 7 10 6 11 7 8 5 8 4 10 11 9 6 12 7 10 9 9 7 10 5 7 0 8 12 11 11 11 8 10 10 11 9 10 11 7 9 10 11 9 11 9 10 9 9 10 8 7 8 7 4 7 5 14 8 6 +5 7 4 5 6 7 3 8 7 6 8 6 8 2 7 10 5 8 9 6 10 7 10 4 8 9 6 5 10 6 4 8 5 7 8 5 7 9 10 1 5 9 6 9 7 8 2 9 4 7 6 4 7 3 8 1 6 7 5 9 9 8 7 8 8 5 8 0 10 8 8 7 6 5 7 9 7 6 6 5 6 8 3 8 9 5 10 9 8 9 6 8 8 6 5 6 3 9 5 7 +9 9 6 12 8 10 13 9 7 7 9 9 9 10 9 10 5 11 7 7 13 11 13 11 10 9 11 6 10 8 12 9 10 9 10 7 13 10 7 9 13 11 6 10 7 10 9 11 9 12 7 8 8 10 12 11 6 10 7 11 7 9 5 10 9 7 12 10 0 9 11 11 8 7 11 10 10 10 12 10 11 10 11 9 10 9 9 9 9 10 4 8 11 9 8 7 8 14 11 9 +7 8 5 7 7 7 10 10 5 8 8 7 9 7 8 9 4 7 11 6 7 6 9 7 8 5 5 7 9 7 4 3 6 7 2 10 9 11 10 8 5 9 7 3 6 6 9 10 8 8 8 5 7 10 7 9 7 1 6 7 8 8 6 5 6 7 11 8 9 0 7 6 7 6 6 9 5 7 7 6 7 5 10 4 11 8 10 4 4 3 5 6 3 8 9 8 8 9 8 8 +7 5 8 7 6 9 9 8 7 6 8 5 8 6 5 9 8 7 9 6 9 1 4 4 8 9 9 5 10 7 7 8 5 8 9 11 7 9 9 7 6 9 6 8 7 8 8 7 7 8 6 6 7 9 3 7 5 6 5 8 8 3 6 5 8 4 11 8 11 7 0 7 4 7 4 9 7 7 2 8 7 4 9 8 6 5 7 8 5 7 7 7 10 8 8 5 7 7 5 8 +8 6 7 6 8 9 8 8 5 5 11 8 8 5 8 10 6 5 12 4 7 8 11 7 8 7 7 5 11 10 6 5 8 9 4 6 10 9 8 6 5 9 9 7 10 9 8 4 6 6 6 7 7 8 4 8 7 7 8 9 7 8 8 3 8 8 11 7 11 6 7 0 7 8 3 10 9 6 9 8 5 3 8 6 10 6 9 8 2 7 7 8 5 8 9 6 7 9 8 11 +5 1 6 4 2 7 5 7 8 7 5 1 8 4 1 7 5 5 8 7 7 5 8 3 6 5 5 6 6 4 6 5 2 5 6 11 5 5 6 5 7 7 2 8 3 7 4 3 7 7 5 2 4 6 6 7 4 6 1 6 5 7 3 4 5 5 8 6 8 7 4 7 0 7 5 5 8 4 6 4 6 6 7 7 7 1 6 5 5 6 4 6 7 7 4 7 5 11 3 5 +8 8 1 8 6 8 8 9 8 9 3 8 11 5 8 9 2 9 12 8 10 8 7 7 6 8 9 8 7 6 9 6 8 7 7 10 10 10 12 4 9 7 5 9 5 9 7 10 7 10 7 6 6 6 8 6 4 7 6 9 6 10 4 7 7 5 10 5 7 6 7 8 7 0 7 9 6 4 9 8 9 7 6 8 9 8 8 7 6 8 3 6 8 9 7 9 8 13 8 7 +6 6 7 7 6 9 8 8 5 6 10 6 8 7 6 10 6 5 12 4 7 5 8 8 5 8 8 5 10 7 3 7 7 6 7 9 10 8 6 8 2 6 7 7 8 10 8 7 5 4 6 5 7 10 1 8 7 6 6 9 7 6 8 1 7 8 10 7 11 6 4 3 5 7 0 10 9 3 6 7 3 3 10 6 8 4 8 8 2 7 7 8 8 8 6 4 7 6 8 8 +7 6 8 9 7 9 8 10 5 8 9 4 8 8 6 10 7 8 11 6 10 9 12 6 8 9 7 7 11 8 8 8 5 9 9 12 9 10 11 9 9 7 6 8 7 9 9 8 8 11 8 7 7 9 11 8 6 8 6 11 3 10 5 9 8 7 11 9 10 9 9 10 5 9 10 0 8 9 10 6 10 9 11 7 6 6 5 5 8 6 6 9 9 10 8 8 8 13 7 9 +6 9 6 10 8 8 10 9 6 7 3 8 9 9 9 8 5 10 13 5 10 8 7 10 8 7 6 6 10 6 7 8 9 7 7 11 11 10 13 8 8 9 6 4 5 5 5 11 7 10 7 7 8 9 10 8 8 4 7 9 7 9 7 8 9 8 9 7 10 5 7 9 8 6 9 8 0 9 9 5 9 8 10 3 10 9 9 3 7 2 6 5 8 9 8 7 4 12 10 7 +5 5 5 4 4 7 9 9 8 9 7 5 8 4 5 9 6 8 9 7 10 8 6 6 2 5 5 8 7 4 6 7 6 3 8 11 7 9 9 5 5 3 4 9 5 7 6 7 6 7 7 2 6 7 4 7 6 6 3 7 7 9 5 4 7 7 10 6 10 7 7 6 4 4 3 9 9 0 9 4 6 6 7 8 6 5 5 7 5 8 6 6 7 8 6 7 6 9 5 7 +7 7 10 7 8 10 7 9 8 7 8 6 9 6 7 9 10 5 9 7 7 1 4 4 7 8 9 6 10 5 9 8 5 6 9 9 7 10 11 7 8 8 7 10 6 8 8 9 7 10 7 8 7 8 5 5 7 6 7 8 9 3 8 7 8 6 11 6 12 7 2 9 6 9 6 10 9 9 0 8 9 6 9 9 6 7 7 8 7 8 9 9 10 9 9 5 8 5 5 8 +1 5 8 7 4 3 8 5 6 5 7 5 7 4 5 8 7 9 11 5 8 7 8 6 4 7 1 4 9 6 6 5 6 5 4 10 6 7 10 5 5 5 4 8 5 9 3 7 7 9 4 2 5 7 8 6 6 6 3 9 7 5 5 8 6 7 7 5 10 6 8 8 4 8 7 6 5 4 8 0 9 8 7 7 8 5 7 7 7 7 6 6 3 4 6 3 2 8 5 7 +8 7 8 5 7 9 5 8 5 6 11 7 8 6 7 8 7 6 10 4 8 8 11 8 8 8 9 5 12 10 6 9 7 9 8 11 10 9 7 5 5 7 8 7 9 10 8 5 2 1 6 8 5 7 4 7 7 8 7 10 8 8 8 2 4 8 9 6 11 7 7 5 6 9 3 10 9 6 9 9 0 4 7 6 9 5 9 8 3 7 8 8 7 8 9 6 7 9 8 9 +7 7 6 8 7 8 5 7 4 5 10 7 5 8 7 9 5 4 13 3 6 5 8 8 8 9 9 4 10 9 6 8 7 8 7 9 11 8 5 8 5 9 8 6 9 9 7 7 5 5 5 8 6 10 4 7 6 6 7 9 6 7 7 2 7 7 10 8 10 5 4 3 6 7 3 9 8 6 6 8 4 0 10 5 9 5 8 7 1 6 6 7 8 7 9 5 6 9 9 10 +6 8 5 6 7 8 6 9 8 9 9 7 11 3 8 11 6 9 10 7 11 8 11 5 9 8 8 8 11 7 7 9 6 8 9 8 8 10 11 2 8 10 7 8 8 10 5 10 5 8 9 5 8 4 11 4 9 9 6 6 10 10 8 9 9 8 11 3 11 10 9 8 7 6 10 11 10 7 9 7 7 10 0 9 10 6 11 10 9 10 7 9 10 9 8 8 6 8 6 10 +6 8 8 7 7 7 10 6 3 4 5 7 6 8 8 7 7 7 12 2 7 8 8 8 7 6 8 3 10 5 6 7 7 6 6 8 10 7 10 7 7 8 5 1 4 4 6 10 4 7 4 6 5 8 7 9 6 3 6 8 6 6 6 5 6 5 9 8 9 4 8 6 7 8 6 7 3 8 9 7 6 5 9 0 9 8 8 2 4 1 6 2 7 6 5 4 5 11 8 6 +9 8 8 9 8 9 12 8 9 8 9 8 4 9 8 10 7 10 11 8 9 5 8 8 4 7 9 7 9 6 11 9 9 5 10 14 11 9 11 8 10 3 6 10 7 9 10 10 8 10 6 8 7 9 9 10 6 10 7 9 3 7 5 7 8 7 11 9 10 11 6 10 7 9 8 6 10 6 6 8 9 9 10 9 0 6 1 7 8 8 6 10 11 8 8 8 9 11 9 9 +6 2 7 3 3 8 6 8 7 8 6 2 8 5 2 8 6 6 9 6 8 6 9 4 7 6 6 7 7 5 7 6 3 6 7 10 6 4 5 4 6 7 3 9 4 8 5 4 6 6 6 3 5 6 5 6 5 7 2 5 6 8 4 3 6 6 9 5 9 8 5 6 1 8 4 6 9 5 7 5 5 5 6 8 6 0 5 6 4 7 5 7 7 8 5 8 6 10 4 6 +8 7 7 8 7 8 11 7 8 7 8 7 3 9 7 9 6 9 10 7 10 6 7 9 3 6 8 6 8 5 11 8 8 4 9 14 11 8 10 9 10 2 5 9 6 8 9 9 7 10 5 7 6 8 9 10 5 9 6 8 2 8 4 8 7 6 10 10 9 10 7 9 6 8 8 5 9 5 7 7 9 8 11 8 1 5 0 6 7 7 5 9 10 7 7 7 8 12 9 8 +8 6 7 9 5 9 9 7 5 6 4 5 8 7 6 7 6 9 10 4 9 8 8 7 5 6 8 5 8 3 6 7 6 4 6 10 10 9 11 8 7 6 3 3 2 4 7 8 6 9 6 5 7 6 9 10 5 3 4 6 4 8 4 7 8 6 9 9 9 4 8 8 5 7 8 5 3 7 8 7 8 7 10 2 7 6 6 0 6 1 5 4 6 8 5 6 7 11 8 4 +6 6 5 7 6 7 6 6 3 4 9 6 6 7 6 8 4 3 12 2 5 6 9 7 7 9 8 3 9 8 5 7 6 7 6 8 10 7 6 7 4 8 7 5 8 8 6 6 4 4 4 7 5 9 3 8 5 5 6 8 5 6 6 1 6 6 9 8 9 4 5 2 5 6 2 8 7 5 7 7 3 1 9 4 8 4 7 6 0 5 5 6 7 6 8 4 5 8 8 9 +7 7 8 8 6 8 10 7 4 5 5 6 7 8 7 6 7 8 11 3 8 7 7 8 6 5 8 4 9 4 5 6 7 5 5 9 9 8 11 8 6 7 4 2 3 3 7 9 5 8 5 6 6 7 8 10 6 2 5 7 5 7 5 6 7 6 10 9 10 3 7 7 6 8 7 6 2 8 8 7 7 6 10 1 8 7 7 1 5 0 6 3 6 7 6 5 6 10 9 5 +7 5 2 8 4 7 9 7 8 7 5 5 8 6 5 6 1 8 11 7 9 8 9 7 6 5 7 6 6 4 8 5 6 5 6 11 9 8 10 5 9 7 2 7 3 6 6 7 8 8 5 4 4 6 8 7 2 6 3 7 3 9 1 6 5 3 8 6 4 5 7 7 4 3 7 6 6 6 9 6 8 6 7 6 6 5 5 5 5 6 0 4 7 7 4 7 7 13 7 5 +7 7 6 9 6 9 11 8 5 6 3 7 7 6 7 9 5 7 12 4 5 8 7 8 8 8 7 5 10 6 8 9 8 7 8 10 9 8 12 7 9 9 5 3 5 6 6 9 6 9 6 4 7 9 9 9 6 5 5 9 7 8 5 7 8 7 7 8 8 6 7 8 6 6 8 9 5 6 9 6 8 7 9 2 10 7 9 4 6 3 4 0 9 8 3 6 7 13 7 5 +4 8 7 4 7 4 10 7 8 7 10 6 8 7 8 7 6 8 10 7 6 9 10 6 7 4 2 6 10 7 6 2 5 6 1 11 7 8 11 8 7 8 7 6 8 6 6 9 7 6 5 5 4 10 9 9 6 4 6 6 9 8 7 8 3 7 8 8 11 3 10 5 7 8 8 9 8 7 10 3 7 8 10 7 11 7 10 6 7 6 7 9 0 5 9 6 5 9 7 10 +5 8 8 9 7 1 7 4 5 4 10 6 6 8 8 6 7 8 10 4 9 8 11 6 7 9 3 3 12 9 10 7 5 8 6 9 4 5 12 7 9 8 7 7 8 9 6 10 6 7 2 6 3 9 9 5 5 9 7 8 8 6 6 7 4 6 7 6 9 8 8 8 7 9 8 10 9 8 9 4 8 7 9 6 8 8 7 8 6 7 7 8 5 0 9 4 5 8 6 7 +7 5 6 8 4 9 8 5 8 7 5 5 4 6 5 9 5 9 9 7 8 9 9 7 6 7 7 6 9 4 8 9 6 5 10 10 9 5 10 6 8 7 2 6 3 9 3 7 9 10 7 4 6 6 7 6 4 8 3 6 5 9 3 7 7 5 4 5 8 9 8 9 4 7 6 8 8 6 9 6 9 9 8 5 8 5 7 5 8 6 4 3 9 9 0 7 4 12 7 2 +2 8 9 7 7 5 9 4 3 2 7 6 4 5 8 6 8 7 10 2 9 4 7 6 7 8 4 1 11 6 7 8 5 7 7 11 8 5 10 6 6 8 6 5 5 8 4 10 4 7 2 5 3 8 5 7 5 7 6 6 8 2 6 5 4 6 7 6 7 8 5 6 7 9 4 8 7 7 5 3 6 5 8 4 8 8 7 6 4 5 7 6 6 4 7 0 3 7 6 7 +3 6 7 8 5 5 6 5 4 3 7 6 5 5 6 7 8 8 11 3 10 7 10 6 6 8 3 2 11 7 7 7 5 7 6 8 8 6 11 4 7 7 5 6 6 9 1 8 5 8 3 4 4 6 8 4 6 8 4 7 8 5 6 6 5 7 5 3 8 8 7 7 5 8 7 8 4 6 8 2 7 6 6 5 9 6 8 7 5 6 7 7 5 5 4 3 0 10 7 6 +9 12 13 12 9 9 12 11 10 9 13 11 11 11 12 13 12 10 10 9 12 6 9 9 11 11 7 8 15 10 5 9 10 11 10 14 12 12 12 10 4 12 11 12 11 13 11 13 11 9 9 10 10 12 7 10 11 8 10 13 13 8 12 7 11 11 14 9 14 9 7 9 11 13 6 13 12 9 5 8 9 9 8 11 11 10 12 11 8 10 13 13 9 8 12 7 10 0 10 11 +6 2 7 6 5 5 7 6 7 6 8 3 8 3 4 7 8 5 6 6 7 4 7 1 7 7 6 5 7 7 9 5 2 8 6 10 2 7 9 4 10 8 5 9 6 9 7 4 7 7 4 3 4 6 8 6 6 7 4 9 8 6 6 7 4 7 8 5 11 8 5 8 3 8 8 7 10 5 5 5 8 9 6 8 9 4 9 8 8 9 7 7 7 6 7 6 7 10 0 8 +8 6 7 9 5 8 9 3 8 7 4 5 6 7 6 9 6 9 7 7 10 9 8 7 5 6 8 6 8 3 6 8 6 4 9 12 10 7 11 8 7 6 3 7 2 8 5 8 9 10 5 5 6 6 9 8 5 7 4 6 6 9 4 9 7 4 6 7 9 8 8 11 5 7 8 9 7 7 8 7 9 10 10 6 9 6 8 4 9 5 5 5 10 7 2 7 6 11 8 0 diff --git a/connect.sh b/connect.sh new file mode 100644 index 0000000000000000000000000000000000000000..73d643dc5082c56cb47add2dd4b1fb788e72d3dd --- /dev/null +++ b/connect.sh @@ -0,0 +1 @@ +sshpass -p "9M6J2TB" ssh 13517001@167.205.35.150 \ No newline at end of file diff --git a/dijkstra b/dijkstra new file mode 100755 index 0000000000000000000000000000000000000000..d20ea205ac8c43f86421cd93bf4be0929d1d7df2 Binary files /dev/null and b/dijkstra differ diff --git a/dijkstra.c b/dijkstra.c new file mode 100644 index 0000000000000000000000000000000000000000..f42ef744340880a88f301191736befa047ec1b9a --- /dev/null +++ b/dijkstra.c @@ -0,0 +1,180 @@ +#include <limits.h> +#include <stdio.h> +#include <stdlib.h> +#include <omp.h> + + +#define true 1 +#define false 0 + +int minDistance(int dist[], int sptSet[], int num_vertex) { + int min = INT_MAX, min_index; + for (int v = 0; v < num_vertex; v++) + if (sptSet[v] == false && dist[v] <= min) + min = dist[v], min_index = v; + return min_index; +} + +int* dijkstra(int** graph, int src, int num_vertex) { + int dist[num_vertex]; + int sptSet[num_vertex]; + for (int i = 0; i < num_vertex; i++) + dist[i] = INT_MAX, sptSet[i] = false; + + dist[src] = 0; + + for (int count = 0; count < num_vertex - 1; count++) { + int u = minDistance(dist, sptSet, num_vertex); + + sptSet[u] = true; + + for (int v = 0; v < num_vertex; v++) + + if (!sptSet[v] && graph[u][v] && dist[u] != INT_MAX + && dist[u] + graph[u][v] < dist[v]) + dist[v] = dist[u] + graph[u][v]; + } + + int* result; + result = malloc(num_vertex * sizeof *result); + for (int i = 0; i < num_vertex; i++) { + result[i] = dist[i]; + } + + return result; +} + +int** InitMatrix(int num_nodes) { + int** adj_matrix; + adj_matrix = malloc(num_nodes * sizeof *adj_matrix); + for(int i = 0; i < num_nodes; i++){ + adj_matrix[i] = malloc(num_nodes * sizeof *adj_matrix[i]); + } + return adj_matrix; +} + +void RandomMatrix(int** adj_matrix, int num_nodes) { + srand(13517001); + // init distance + for (int i = 0; i < num_nodes; i++) { + for (int j = i; j < num_nodes; j++) { + if (i == j) { + adj_matrix[i][j] = 0; + } else { + adj_matrix[i][j] = rand() % 100; + adj_matrix[j][i] = adj_matrix[i][j]; + } + } + } +} + +int random_matrix(int*** adj_matrix, int num_nodes) { + srand(13517001); + // init distance + for (int i = 0; i < num_nodes; i++) { + for (int j = i; j < num_nodes; j++) { + if (i == j) { + (*adj_matrix)[i][j] = 0; + } else { + (*adj_matrix)[i][j] = rand() % 100; + (*adj_matrix)[j][i] = (*adj_matrix)[i][j]; + } + } + } + return 0; +} + +int print_matrix(int*** adj_matrix, int num_nodes) { + for (int i = 0; i < num_nodes; i++) { + for (int j = 0; j < num_nodes; j++) { + printf("%d\t", (*adj_matrix)[i][j]); + } + printf("\n"); + } + return 0; +} + +int malloc2dint(int ***array, int n, int m) { + + int *p = (int *)malloc(n*m*sizeof(int)); + if (!p) return -1; + + (*array) = (int **)malloc(n*sizeof(int*)); + if (!(*array)) { + free(p); + return -1; + } + + for (int i = 0; i < n; i++) + (*array)[i] = &(p[i*m]); + + return 0; +} + +int free2dint(int ***array) { + free(&((*array)[0][0])); + + free(*array); + + return 0; +} + +void PrintMatrix(int** adj_matrix, int num_nodes) { + for (int i = 0; i < num_nodes; i++) { + for (int j = 0; j < num_nodes; j++) { + printf("%d\t", adj_matrix[i][j]); + } + printf("\n"); + } +} + +void FreeMatrix(int** adj_matrix, int num_nodes) { + for (int i = 0; i < num_nodes; i++) { + free(adj_matrix[i]); + } + free(adj_matrix); +} + +void debug(int x) { + printf("DEBUG %d >>>\n", x); +} + + +void Hello(void); /* Thread function */ + +int main(int argc, char *argv[]) { + int nodes_count = strtol(argv[2], NULL, 10); + + int** adj_matrix; + int** result_matrix; + result_matrix = InitMatrix(nodes_count); + adj_matrix = InitMatrix(nodes_count); + RandomMatrix(adj_matrix, nodes_count); + // PrintMatrix(adj_matrix, nodes_count); + + #pragma omp parallel num_threads(4) + #pragma omp for + for (int i = 0; i < nodes_count; i++) { + /* code */ + int my_rank = omp_get_thread_num(); + int* temp; + + temp = dijkstra(adj_matrix, i, nodes_count); + result_matrix[i] = temp; + // printf("rank %d do nodes %d\n", my_rank, i); + } + + printf("~=== Hasil ===~\n"); + PrintMatrix(result_matrix, nodes_count); + FreeMatrix(adj_matrix, nodes_count); + FreeMatrix(result_matrix, nodes_count); + return 0; +} + +void Hello(void) { + int my_rank = omp_get_thread_num(); + int thread_count = omp_get_num_threads(); + + printf("Hello from thread %d of %d\n", my_rank, thread_count); +} + diff --git a/test b/test new file mode 100755 index 0000000000000000000000000000000000000000..133ad4d234d324ac45ad03afad679f52f3c55a5b Binary files /dev/null and b/test differ