From a018367d609e1a81ffa3a25c5284e33f22b937c0 Mon Sep 17 00:00:00 2001 From: Farhan Ramadhan <farhanramadhansk@gmail.com> Date: Fri, 28 Feb 2020 23:43:01 +0700 Subject: [PATCH] translate from openmpi to openmp --- Makefile | 8 +++ answer.txt | 101 ++++++++++++++++++++++++++++++ connect.sh | 1 + dijkstra | Bin 0 -> 23728 bytes dijkstra.c | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test | Bin 0 -> 17336 bytes 6 files changed, 290 insertions(+) create mode 100644 Makefile create mode 100644 answer.txt create mode 100644 connect.sh create mode 100755 dijkstra create mode 100644 dijkstra.c create mode 100755 test diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..18a876a --- /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 0000000..59417fa --- /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 0000000..73d643d --- /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 GIT binary patch literal 23728 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 TnzOL*qK)_K91mIqEGYX|Hj$K9 literal 0 HcmV?d00001 diff --git a/dijkstra.c b/dijkstra.c new file mode 100644 index 0000000..f42ef74 --- /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 GIT binary patch literal 17336 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 Q>%Xzul$h;Ma1_P=0$uv?jQ{`u literal 0 HcmV?d00001 -- GitLab