summaryrefslogtreecommitdiff
path: root/2022
diff options
context:
space:
mode:
Diffstat (limited to '2022')
-rwxr-xr-x2022/day01/mainbin20760 -> 0 bytes
-rwxr-xr-x2022/day03/mainbin20800 -> 0 bytes
-rwxr-xr-x2022/day04/mainbin20672 -> 0 bytes
-rwxr-xr-x2022/day05/mainbin21080 -> 0 bytes
-rwxr-xr-x2022/day06/mainbin20704 -> 0 bytes
-rwxr-xr-x2022/day07/mainbin21104 -> 0 bytes
-rwxr-xr-x2022/day08/mainbin20864 -> 0 bytes
-rw-r--r--2022/day09/input1.txt8
-rw-r--r--2022/day09/input2.txt2000
-rw-r--r--2022/day09/input3.txt8
-rw-r--r--2022/day09/main.c49
-rw-r--r--2022/day09/main2.c50
12 files changed, 2115 insertions, 0 deletions
diff --git a/2022/day01/main b/2022/day01/main
deleted file mode 100755
index 68fb10f..0000000
--- a/2022/day01/main
+++ /dev/null
Binary files differ
diff --git a/2022/day03/main b/2022/day03/main
deleted file mode 100755
index 6f77a3f..0000000
--- a/2022/day03/main
+++ /dev/null
Binary files differ
diff --git a/2022/day04/main b/2022/day04/main
deleted file mode 100755
index 498303f..0000000
--- a/2022/day04/main
+++ /dev/null
Binary files differ
diff --git a/2022/day05/main b/2022/day05/main
deleted file mode 100755
index 1d67170..0000000
--- a/2022/day05/main
+++ /dev/null
Binary files differ
diff --git a/2022/day06/main b/2022/day06/main
deleted file mode 100755
index 9963238..0000000
--- a/2022/day06/main
+++ /dev/null
Binary files differ
diff --git a/2022/day07/main b/2022/day07/main
deleted file mode 100755
index 2569466..0000000
--- a/2022/day07/main
+++ /dev/null
Binary files differ
diff --git a/2022/day08/main b/2022/day08/main
deleted file mode 100755
index e2d2028..0000000
--- a/2022/day08/main
+++ /dev/null
Binary files differ
diff --git a/2022/day09/input1.txt b/2022/day09/input1.txt
new file mode 100644
index 0000000..9874df2
--- /dev/null
+++ b/2022/day09/input1.txt
@@ -0,0 +1,8 @@
+R 4
+U 4
+L 3
+D 1
+R 4
+D 1
+L 5
+R 2
diff --git a/2022/day09/input2.txt b/2022/day09/input2.txt
new file mode 100644
index 0000000..0739d8d
--- /dev/null
+++ b/2022/day09/input2.txt
@@ -0,0 +1,2000 @@
+L 1
+D 2
+R 1
+L 1
+R 2
+L 1
+U 2
+L 2
+D 1
+L 2
+U 2
+R 2
+D 2
+L 1
+D 2
+U 2
+L 2
+R 2
+L 1
+U 2
+D 2
+U 2
+D 2
+L 1
+R 2
+L 2
+D 2
+R 1
+D 1
+R 2
+U 1
+R 2
+L 2
+R 1
+U 2
+R 1
+D 1
+U 1
+L 2
+R 1
+D 2
+U 1
+R 1
+U 2
+L 1
+R 2
+U 1
+R 2
+L 2
+R 1
+D 2
+R 1
+D 1
+U 2
+R 1
+D 1
+U 1
+D 2
+L 1
+U 1
+D 1
+R 2
+D 2
+R 1
+D 2
+L 2
+D 2
+U 1
+L 1
+D 1
+L 1
+R 2
+U 2
+L 2
+D 2
+L 2
+D 1
+U 2
+D 2
+L 2
+R 1
+D 1
+L 1
+U 1
+L 1
+U 2
+L 1
+U 1
+D 1
+R 1
+L 1
+R 2
+D 1
+L 2
+D 2
+R 1
+D 2
+R 1
+D 1
+R 2
+L 2
+U 1
+D 2
+L 2
+U 2
+D 2
+R 1
+D 1
+U 2
+R 2
+U 2
+D 3
+L 1
+U 2
+R 2
+D 1
+U 1
+L 1
+U 3
+L 3
+U 2
+L 3
+U 3
+L 3
+D 3
+R 1
+U 3
+R 3
+U 3
+D 2
+R 2
+U 2
+R 3
+L 3
+U 1
+R 1
+D 3
+L 1
+U 1
+R 3
+U 3
+D 1
+L 3
+R 1
+U 3
+D 2
+U 2
+D 2
+R 1
+U 2
+L 2
+U 3
+L 1
+U 3
+D 3
+U 3
+L 2
+R 3
+D 1
+L 1
+R 3
+L 2
+D 3
+U 3
+R 2
+L 1
+R 2
+D 3
+U 3
+R 2
+U 3
+L 1
+R 2
+U 3
+D 2
+U 3
+L 3
+R 3
+D 3
+U 1
+D 1
+U 2
+R 2
+U 3
+D 3
+U 2
+D 2
+L 2
+D 2
+L 2
+R 1
+U 2
+D 2
+L 2
+R 1
+D 3
+L 3
+D 2
+L 3
+D 3
+L 2
+D 2
+L 2
+D 2
+U 2
+L 3
+D 3
+L 2
+U 2
+D 2
+R 3
+D 2
+U 3
+L 1
+R 1
+D 2
+U 3
+R 1
+U 2
+D 2
+R 2
+U 3
+R 2
+U 1
+L 1
+D 2
+R 4
+D 1
+U 4
+D 2
+U 3
+R 1
+D 2
+R 3
+L 2
+D 3
+L 3
+R 1
+D 1
+U 2
+R 1
+L 2
+R 2
+D 1
+L 1
+D 1
+L 4
+D 3
+R 1
+U 3
+R 2
+U 1
+R 1
+D 2
+L 2
+D 2
+U 3
+L 4
+D 4
+R 4
+L 2
+U 1
+R 2
+L 2
+U 4
+D 1
+R 4
+L 3
+R 4
+U 1
+D 2
+L 2
+R 2
+D 1
+L 2
+U 1
+D 3
+R 2
+U 2
+L 3
+D 4
+U 3
+R 4
+L 4
+R 1
+U 1
+D 2
+L 3
+D 1
+U 4
+R 2
+D 4
+L 2
+D 3
+L 2
+D 2
+L 1
+U 3
+L 4
+U 3
+D 4
+L 3
+D 1
+R 2
+D 2
+U 4
+L 4
+U 3
+L 4
+D 2
+R 3
+U 1
+L 2
+R 2
+D 2
+U 4
+L 2
+U 4
+D 1
+U 2
+R 4
+L 2
+U 4
+L 4
+U 2
+D 2
+U 4
+L 2
+U 3
+D 2
+L 3
+U 1
+L 2
+R 3
+D 2
+R 5
+L 5
+D 3
+R 4
+D 2
+R 4
+U 4
+R 5
+D 5
+R 5
+L 4
+U 2
+D 2
+R 2
+U 4
+R 2
+L 4
+R 3
+U 2
+R 5
+D 3
+L 4
+R 2
+L 3
+U 4
+R 2
+D 4
+R 2
+L 4
+D 4
+R 3
+D 5
+U 1
+L 2
+R 5
+L 5
+U 5
+D 1
+U 1
+L 3
+D 1
+U 5
+D 2
+R 3
+U 4
+R 4
+U 3
+L 5
+U 5
+D 5
+R 1
+D 3
+L 5
+R 5
+U 2
+D 2
+U 4
+D 3
+R 5
+U 5
+L 3
+U 3
+L 2
+U 4
+L 2
+R 4
+D 3
+L 4
+U 3
+D 1
+L 1
+D 4
+U 4
+D 1
+R 2
+L 5
+D 1
+U 4
+R 2
+D 3
+R 1
+D 1
+L 4
+D 2
+L 4
+R 3
+U 5
+L 1
+D 1
+L 5
+U 5
+R 5
+U 4
+D 5
+U 3
+D 5
+R 2
+U 2
+R 4
+D 1
+U 4
+R 3
+D 2
+U 3
+R 3
+L 1
+R 2
+D 4
+L 5
+D 6
+L 2
+D 3
+R 3
+U 3
+L 3
+R 3
+U 5
+R 4
+D 3
+R 5
+L 4
+D 6
+U 3
+R 2
+L 4
+D 3
+L 3
+R 3
+U 5
+R 1
+D 6
+L 5
+D 3
+U 2
+R 3
+D 3
+R 3
+U 1
+L 5
+R 6
+D 2
+U 4
+R 5
+U 1
+D 2
+U 5
+R 3
+L 4
+D 3
+L 6
+U 6
+R 2
+U 6
+L 3
+D 1
+R 2
+U 2
+R 3
+U 6
+L 4
+D 3
+R 2
+U 2
+L 3
+R 6
+U 3
+R 6
+L 2
+U 3
+R 3
+D 2
+R 6
+D 2
+L 4
+U 6
+D 2
+U 6
+L 1
+D 1
+L 5
+D 3
+R 6
+L 5
+R 6
+D 2
+R 4
+L 1
+U 4
+L 5
+U 5
+D 5
+R 6
+L 5
+U 5
+R 2
+D 6
+U 3
+R 2
+D 3
+U 3
+L 4
+D 5
+R 3
+U 5
+D 3
+R 3
+L 6
+R 3
+D 1
+U 2
+L 4
+D 4
+U 2
+L 4
+U 6
+D 5
+L 6
+U 5
+D 1
+U 6
+D 5
+U 2
+R 7
+U 6
+R 2
+D 2
+R 7
+D 4
+L 7
+U 5
+L 2
+U 4
+D 2
+R 2
+L 2
+D 3
+U 3
+D 6
+L 7
+R 5
+D 5
+L 7
+U 1
+D 5
+L 6
+U 1
+R 1
+D 7
+U 5
+D 4
+L 2
+U 1
+D 2
+U 6
+D 5
+U 1
+R 1
+L 3
+D 3
+U 3
+L 5
+D 5
+U 3
+R 6
+L 6
+R 1
+U 2
+D 3
+L 2
+U 6
+D 3
+R 3
+U 2
+D 1
+L 4
+U 2
+L 7
+U 4
+R 2
+D 6
+L 4
+D 6
+L 1
+D 3
+L 6
+D 4
+R 6
+U 3
+D 1
+L 4
+R 6
+U 5
+R 5
+U 5
+R 3
+L 6
+U 1
+D 2
+U 3
+D 1
+L 7
+D 6
+U 4
+D 5
+L 6
+U 7
+L 2
+U 4
+L 6
+R 6
+U 3
+D 4
+R 6
+U 1
+D 5
+R 5
+U 6
+R 4
+U 2
+D 2
+U 2
+R 3
+L 6
+U 6
+R 2
+L 2
+R 6
+L 1
+D 6
+R 2
+D 2
+L 8
+U 6
+R 7
+L 7
+D 3
+L 3
+R 8
+U 2
+L 7
+D 4
+R 5
+D 4
+R 1
+U 5
+D 2
+R 6
+L 7
+U 2
+L 4
+R 1
+D 2
+U 4
+D 3
+R 2
+U 1
+L 5
+U 5
+L 5
+R 7
+D 6
+R 2
+D 7
+R 1
+L 6
+R 8
+D 7
+R 3
+U 6
+L 7
+R 7
+U 8
+L 4
+D 4
+U 6
+L 5
+R 2
+L 2
+R 7
+D 8
+L 7
+D 2
+R 1
+U 1
+R 6
+D 5
+U 8
+R 5
+L 1
+R 7
+U 1
+L 7
+D 5
+L 6
+R 5
+L 3
+U 7
+L 8
+R 6
+U 6
+R 4
+U 1
+R 8
+U 1
+D 1
+U 8
+D 7
+R 1
+L 8
+R 1
+L 6
+D 8
+L 6
+U 7
+R 8
+D 4
+U 6
+R 7
+L 8
+U 4
+L 4
+D 6
+R 5
+L 1
+U 2
+D 1
+L 3
+D 7
+R 6
+L 3
+R 5
+L 1
+D 5
+L 3
+R 5
+U 5
+R 7
+U 6
+D 6
+U 2
+R 8
+D 3
+L 7
+D 5
+U 9
+R 5
+L 9
+D 5
+R 2
+U 6
+L 5
+U 9
+L 7
+D 3
+L 6
+U 3
+R 5
+D 7
+R 3
+L 5
+R 2
+L 6
+R 9
+L 8
+D 4
+L 6
+U 8
+L 8
+D 4
+R 2
+U 1
+D 6
+U 6
+R 3
+L 8
+U 2
+L 8
+D 9
+R 9
+L 1
+D 3
+R 6
+D 6
+L 9
+D 3
+R 9
+L 2
+D 8
+U 2
+R 8
+L 3
+D 9
+L 6
+D 9
+U 3
+D 9
+R 5
+L 2
+D 7
+L 6
+U 2
+L 8
+D 9
+L 5
+R 7
+L 3
+D 7
+U 4
+L 8
+R 9
+L 5
+R 7
+D 7
+R 6
+D 6
+L 6
+R 8
+L 6
+D 4
+R 5
+D 2
+L 5
+U 2
+D 8
+R 9
+L 3
+U 1
+L 6
+D 1
+R 9
+L 4
+U 1
+R 4
+L 1
+D 3
+R 5
+D 9
+L 4
+D 3
+U 9
+D 7
+L 5
+R 3
+L 7
+R 8
+L 1
+U 6
+L 8
+D 8
+R 6
+L 1
+U 1
+D 7
+R 10
+U 3
+D 4
+U 5
+D 3
+R 7
+U 8
+D 3
+U 8
+D 9
+L 10
+D 5
+L 7
+U 3
+D 3
+U 5
+R 5
+U 7
+L 2
+D 6
+U 6
+R 6
+U 9
+R 9
+L 5
+R 1
+L 4
+D 3
+U 4
+D 8
+U 3
+R 7
+D 1
+U 5
+L 6
+R 4
+U 2
+L 8
+U 10
+D 8
+U 8
+R 6
+L 1
+U 9
+R 9
+D 10
+U 8
+L 9
+D 5
+U 9
+D 9
+U 6
+D 10
+L 9
+R 4
+D 3
+R 10
+D 6
+R 8
+D 1
+U 4
+L 1
+D 6
+R 1
+L 1
+D 7
+R 1
+L 4
+R 5
+U 9
+R 5
+U 1
+R 9
+D 3
+U 4
+D 6
+L 3
+U 10
+D 3
+U 10
+R 10
+D 7
+L 5
+R 4
+D 4
+L 1
+R 7
+L 4
+R 5
+D 2
+L 9
+D 9
+L 5
+D 8
+R 1
+D 3
+L 8
+D 4
+L 8
+U 8
+L 7
+D 7
+U 4
+D 7
+R 10
+U 2
+R 7
+D 4
+L 6
+D 4
+U 3
+L 4
+U 8
+D 7
+L 9
+R 4
+D 9
+U 10
+L 7
+U 11
+R 5
+U 2
+D 4
+U 10
+L 3
+R 5
+U 8
+D 10
+L 7
+D 7
+R 2
+D 5
+U 6
+L 1
+U 11
+R 6
+D 9
+U 1
+L 4
+U 2
+D 1
+L 3
+D 6
+L 8
+U 9
+D 9
+L 5
+D 3
+R 2
+L 11
+D 9
+U 9
+R 10
+U 7
+D 11
+R 4
+L 11
+U 6
+R 2
+U 6
+D 1
+U 8
+L 11
+R 5
+L 11
+U 10
+R 2
+L 3
+D 8
+U 7
+R 11
+L 9
+U 7
+D 8
+R 2
+L 2
+R 5
+L 10
+R 4
+D 3
+R 5
+L 7
+D 2
+U 7
+R 2
+U 10
+L 1
+D 1
+U 2
+R 2
+D 1
+R 10
+L 6
+U 8
+R 3
+D 8
+U 10
+D 5
+R 3
+U 1
+L 2
+D 5
+R 11
+U 2
+R 11
+L 9
+U 1
+R 5
+L 6
+U 5
+D 1
+U 11
+D 1
+R 7
+L 9
+U 5
+D 11
+L 9
+U 1
+L 4
+D 1
+R 3
+D 10
+U 9
+L 3
+R 11
+L 9
+R 12
+U 8
+D 9
+L 12
+D 1
+U 10
+R 11
+U 9
+R 8
+U 11
+R 8
+U 6
+D 7
+R 7
+U 10
+L 10
+U 4
+L 10
+R 2
+D 6
+L 10
+D 10
+R 10
+U 1
+L 7
+D 8
+L 12
+R 9
+U 9
+L 10
+R 11
+D 12
+R 6
+U 10
+R 3
+D 12
+U 12
+R 1
+D 3
+R 5
+U 8
+D 2
+U 4
+D 12
+L 3
+D 11
+U 9
+L 2
+R 7
+L 5
+U 2
+R 5
+L 5
+U 1
+L 4
+R 12
+L 11
+R 8
+D 4
+U 5
+R 5
+U 9
+R 7
+L 6
+R 7
+L 1
+U 6
+D 6
+L 3
+U 1
+L 4
+U 6
+R 5
+L 9
+U 12
+D 11
+R 11
+U 11
+D 7
+U 3
+L 12
+U 7
+L 2
+D 3
+U 10
+D 2
+U 6
+L 9
+R 2
+D 12
+R 11
+U 12
+L 1
+D 9
+R 4
+D 4
+U 5
+D 12
+R 9
+U 6
+L 8
+D 5
+U 6
+D 10
+R 3
+L 1
+U 4
+R 2
+L 8
+U 9
+L 6
+D 1
+L 6
+U 5
+R 6
+D 4
+L 7
+U 2
+R 12
+U 12
+R 13
+U 6
+R 7
+D 12
+R 3
+U 3
+D 10
+U 12
+R 11
+D 3
+U 11
+L 6
+R 5
+D 7
+L 10
+D 5
+L 7
+U 8
+L 3
+U 5
+R 1
+L 1
+R 1
+D 10
+L 2
+R 1
+U 9
+L 10
+U 13
+R 3
+D 9
+R 6
+D 1
+R 7
+U 8
+D 7
+U 13
+R 3
+U 11
+L 13
+R 8
+L 13
+D 6
+L 8
+U 6
+D 10
+R 3
+D 9
+R 11
+U 1
+L 11
+U 5
+R 6
+U 6
+D 10
+R 5
+L 1
+R 6
+U 11
+L 8
+R 3
+D 7
+U 4
+R 5
+D 8
+U 7
+L 6
+U 6
+L 9
+U 10
+R 5
+L 7
+R 5
+L 13
+U 7
+D 1
+L 7
+U 2
+R 9
+L 8
+U 5
+L 13
+R 11
+D 4
+R 6
+U 13
+D 13
+L 9
+R 8
+D 12
+R 6
+D 1
+L 12
+R 8
+U 1
+L 7
+R 13
+D 13
+L 13
+U 7
+D 7
+L 4
+U 13
+R 7
+U 14
+D 11
+R 7
+U 3
+L 9
+U 8
+L 3
+R 14
+D 2
+U 4
+R 1
+L 13
+U 2
+D 5
+U 2
+R 7
+U 14
+D 10
+L 1
+D 7
+L 2
+U 14
+L 14
+R 12
+U 2
+D 5
+L 10
+U 3
+R 11
+D 12
+R 14
+U 7
+R 10
+D 9
+L 13
+D 13
+R 12
+D 14
+R 3
+D 4
+U 8
+L 11
+U 9
+L 5
+U 1
+R 12
+D 6
+U 1
+R 1
+L 5
+U 5
+L 1
+D 5
+U 4
+D 13
+U 7
+R 5
+D 11
+U 9
+R 3
+D 11
+L 9
+D 8
+R 8
+U 8
+L 6
+R 3
+D 5
+L 10
+U 1
+L 4
+R 13
+L 5
+D 8
+L 5
+U 11
+L 8
+R 12
+L 6
+R 12
+U 5
+D 12
+R 12
+D 4
+U 9
+L 4
+R 11
+L 2
+R 11
+U 12
+D 14
+L 2
+U 5
+L 7
+D 8
+U 12
+D 4
+R 4
+L 13
+D 9
+U 11
+R 1
+D 2
+U 8
+D 10
+U 8
+L 6
+U 9
+R 8
+L 12
+U 9
+R 3
+U 14
+R 3
+U 9
+L 11
+U 2
+L 10
+D 6
+U 2
+L 4
+D 12
+L 8
+R 15
+D 11
+L 9
+R 6
+U 9
+R 11
+U 7
+R 13
+L 9
+D 9
+U 2
+R 9
+U 11
+R 15
+U 4
+L 4
+U 6
+D 3
+R 10
+L 5
+U 8
+D 6
+R 6
+D 6
+U 10
+L 7
+R 9
+D 6
+U 12
+R 15
+L 8
+D 9
+U 15
+D 6
+L 14
+D 2
+R 15
+U 14
+D 15
+U 13
+R 1
+U 11
+R 8
+U 13
+D 6
+L 2
+R 1
+U 7
+R 6
+D 13
+U 13
+R 15
+D 15
+R 1
+U 14
+D 9
+U 5
+L 6
+R 9
+L 13
+D 6
+U 2
+R 7
+D 3
+L 10
+R 7
+L 2
+U 4
+D 1
+L 9
+U 9
+R 7
+U 3
+D 7
+U 1
+R 12
+L 11
+R 7
+L 14
+R 3
+L 15
+R 15
+U 5
+R 12
+D 9
+R 5
+U 12
+L 12
+U 6
+L 4
+R 2
+U 2
+L 5
+D 3
+R 12
+D 8
+U 16
+D 16
+L 11
+D 7
+U 15
+R 13
+U 5
+D 6
+L 12
+D 2
+L 16
+D 16
+L 8
+U 9
+R 12
+D 16
+U 2
+R 1
+L 12
+U 9
+D 15
+U 16
+L 14
+D 4
+U 5
+L 2
+R 5
+D 9
+L 4
+R 13
+L 2
+U 2
+R 4
+L 15
+R 13
+D 11
+R 13
+L 13
+U 14
+R 8
+U 5
+D 10
+L 2
+U 15
+D 3
+L 8
+U 2
+L 14
+U 3
+R 16
+U 4
+D 1
+R 5
+L 3
+R 1
+L 16
+D 16
+L 12
+U 14
+R 12
+U 8
+R 1
+L 1
+R 9
+U 9
+R 12
+L 1
+U 9
+L 14
+U 11
+L 8
+U 10
+L 7
+U 1
+L 11
+R 2
+D 12
+U 3
+R 2
+L 14
+D 1
+L 12
+R 16
+D 16
+R 8
+L 15
+R 3
+L 10
+D 14
+R 9
+U 2
+D 4
+U 7
+D 2
+R 11
+D 6
+U 2
+R 4
+L 2
+R 6
+L 11
+R 9
+L 1
+R 8
+D 3
+R 4
+U 14
+D 7
+L 11
+R 14
+L 8
+D 9
+L 6
+D 15
+R 4
+D 9
+U 7
+R 6
+L 13
+D 11
+R 10
+L 17
+R 17
+D 17
+R 7
+U 15
+D 14
+R 6
+U 14
+R 5
+U 17
+R 7
+L 17
+U 14
+L 14
+R 13
+U 4
+R 14
+U 10
+L 16
+U 8
+R 2
+U 4
+D 16
+U 4
+L 14
+R 7
+D 13
+U 10
+L 10
+R 3
+L 6
+D 7
+R 13
+L 6
+U 7
+R 16
+L 10
+U 6
+L 6
+U 11
+D 6
+U 5
+L 4
+U 17
+R 6
+L 3
+D 5
+R 4
+U 1
+L 14
+R 10
+L 4
+U 9
+R 7
+D 2
+R 6
+U 12
+D 15
+R 15
+L 13
+U 5
+L 12
+D 3
+U 15
+L 9
+U 3
+D 12
+R 15
+U 7
+L 7
+R 11
+L 14
+R 2
+D 6
+R 6
+D 9
+R 2
+L 12
+R 2
+U 12
+R 8
+L 2
+U 12
+R 2
+D 17
+L 8
+D 1
+U 16
+D 1
+R 5
+L 9
+U 4
+L 1
+U 9
+L 11
+R 9
+D 7
+R 16
+D 12
+R 3
+U 7
+L 4
+R 7
+L 8
+D 9
+U 10
+D 7
+U 10
+D 5
+U 14
+D 5
+U 11
+R 15
+U 8
+D 12
+U 8
+L 18
+U 16
+D 16
+U 3
+R 5
+D 2
+U 10
+L 17
+R 5
+U 15
+R 9
+D 5
+U 9
+L 12
+D 17
+R 14
+L 4
+R 14
+L 17
+D 9
+L 10
+D 17
+R 1
+U 2
+R 7
+U 13
+R 1
+U 17
+R 4
+L 3
+D 14
+U 11
+L 15
+R 6
+U 4
+D 8
+L 17
+D 3
+R 13
+U 10
+R 4
+U 5
+R 3
+U 16
+D 6
+L 5
+R 18
+L 11
+D 16
+U 7
+R 7
+U 1
+R 14
+U 14
+R 4
+D 3
+R 12
+D 13
+U 5
+D 8
+R 17
+L 9
+D 4
+L 13
+U 8
+R 13
+D 5
+U 17
+L 11
+U 13
+D 9
+L 8
+R 14
+L 15
+D 10
+R 11
+D 8
+L 10
+U 3
+L 3
+R 12
+L 9
+R 17
+U 10
+L 17
+U 13
+L 12
+U 1
+D 2
+R 1
+L 16
+R 11
+D 15
+L 8
+R 10
+L 12
+U 3
+L 17
+U 7
+R 6
+U 16
+R 1
+L 3
+R 5
+L 11
+R 4
+D 10
+L 1
+R 4
+U 12
+L 18
+R 8
+L 7
+R 16
+U 19
+R 10
+U 11
+D 12
+R 6
+U 17
+L 16
+D 19
+L 9
+U 1
+R 12
+U 12
+R 15
+D 4
+L 15
+R 4
+L 9
+R 15
+L 10
+R 7
+L 16
+U 16
+L 19
+U 5
+L 4
+U 12
+L 6
+U 5
+R 17
+U 11
+R 6
+U 15
+L 9
+D 4
+R 2
+L 7
+R 16
+L 13
+U 19
+R 4
+U 13
+L 18
+D 19
+U 15
+R 13
+L 11
+U 18
+D 2
+U 9
+D 18
+L 13
+D 13
+L 11
+U 3
+D 11
+U 16
+R 14
+D 6
+L 12
+D 9
+R 2
+D 14
+L 12
+R 15
+D 2
+R 11
+U 7
+D 9
+L 16
+R 12
+L 12
+D 14
+U 2
+D 12
+R 8
+U 9
+D 10
+U 12
+L 17
+U 19
+L 4
+U 15
+R 12
+L 11
+D 12
+L 8
+U 3
+R 7
+L 2
+D 4
+U 17
diff --git a/2022/day09/input3.txt b/2022/day09/input3.txt
new file mode 100644
index 0000000..60bd43b
--- /dev/null
+++ b/2022/day09/input3.txt
@@ -0,0 +1,8 @@
+R 5
+U 8
+L 8
+D 3
+R 17
+D 10
+L 25
+U 20
diff --git a/2022/day09/main.c b/2022/day09/main.c
new file mode 100644
index 0000000..7f19df5
--- /dev/null
+++ b/2022/day09/main.c
@@ -0,0 +1,49 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef struct Cord_ Cord;
+
+typedef struct Cord_ {
+ int x,y;
+ Cord *next, *prev;
+} Cord;
+
+Cord* updateTail(Cord *head, Cord *tail)
+{
+ int dy, dx, d;
+ dx = head->x - tail->x;
+ dy = head->y - tail->y;
+ d = dx * dx + dy * dy;
+ // distance <= 1
+ if ( d <= 2) return tail;
+ tail->x += (dx + dx/abs(dx))/2;
+ tail->y += (dy + dy/abs(dy))/2;
+
+ return tail;
+}
+
+int main()
+{
+ char c;
+ int d;
+ Cord *h, *t;
+ t = &(Cord){0};
+ h = &(Cord){0};
+ while (scanf("%c %d\n", &c, &d) != EOF)
+ {
+ printf("%c %d\n", c, d);
+ for (int i = 0; i < d; i++)
+ {
+ h->x += (c == 'R') - (c == 'L');
+ h->y += (c == 'U') - (c == 'D');
+ printf("H %d %d \n", h->x, h->y);
+ t = updateTail(h, t);
+ printf("T %d %d \n", t->x, t->y);
+ }
+ }
+
+}
+
+// ./main < input2.txt | grep T | sort | uniq | wc -l
+
+
diff --git a/2022/day09/main2.c b/2022/day09/main2.c
new file mode 100644
index 0000000..da2382c
--- /dev/null
+++ b/2022/day09/main2.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef struct Cord_ Cord;
+
+typedef struct Cord_ {
+ int x,y;
+ Cord *next, *prev;
+} Cord;
+
+Cord* updateTail(Cord *head, Cord *tail)
+{
+ int dy, dx, d;
+ dx = head->x - tail->x;
+ dy = head->y - tail->y;
+ d = dx * dx + dy * dy;
+ // distance <= 1
+ if ( d <= 2) return tail;
+ tail->x += (dx + dx/abs(dx))/2;
+ tail->y += (dy + dy/abs(dy))/2;
+
+ return tail;
+}
+
+int main()
+{
+ char c;
+ int d;
+ Cord h[10] = {0};
+ while (scanf("%c %d\n", &c, &d) != EOF)
+ {
+ printf("%c %d\n", c, d);
+ for (int i = 0; i < d; i++)
+ {
+ h[0].x += (c == 'R') - (c == 'L');
+ h[0].y += (c == 'U') - (c == 'D');
+ printf("H %d %d \n", h->x, h->y);
+ for (int i = 0; i < 9; i++)
+ {
+ updateTail(&h[i], &h[i+1]);
+ }
+ printf("T %d %d \n", h[9].x, h[9].y);
+ }
+ }
+
+}
+
+// ./main < input2.txt | grep T | sort | uniq | wc -l
+
+