commit 8d4848d3260121fadcdeda4ae90c8a330f65634f
Author: amin <dev@aminmesbah.com>
Date: Sat, 1 Dec 2018 19:03:08 +0000
Add solution for 01-1
FossilOrigin-Name: 64a06fc68710a8b666c1c16fcbfccf5a3fa97e2707cac64e895c4cde72762fb4
Diffstat:
A | .gitignore | | | 1 | + |
A | input_01.txt | | | 996 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | main.zig | | | 48 | ++++++++++++++++++++++++++++++++++++++++++++++++ |
3 files changed, 1045 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1 @@
+zig-cache/
diff --git a/input_01.txt b/input_01.txt
@@ -0,0 +1,996 @@
+-2
+-3
++4
+-15
+-15
++18
+-7
++11
+-16
+-14
++2
+-6
++16
++6
++14
+-15
++12
+-5
++17
+-10
+-20
+-19
+-14
+-10
++4
+-11
++10
+-1
++12
+-17
+-2
++1
+-17
++9
++4
++19
++11
+-17
++15
+-12
++5
++4
+-1
+-10
+-19
+-16
+-9
++18
++2
++4
+-19
++16
++6
+-16
+-14
++7
+-9
++7
++17
++17
+-14
++6
+-22
+-13
+-2
+-1
+-18
+-3
++19
++19
++16
+-22
++14
+-2
+-3
++2
+-18
+-15
+-14
+-4
+-15
++1
+-3
+-8
++18
+-11
++6
+-7
++17
++7
+-8
+-13
+-4
++7
+-15
+-11
++7
++9
+-7
++1
+-20
+-19
+-18
+-17
+-12
++7
+-16
+-11
+-4
+-8
+-4
+-3
+-2
++3
+-15
++18
++5
++14
++15
++2
+-19
++5
+-13
++19
++9
++8
++5
+-1
+-19
++11
++2
++13
+-17
++9
+-16
++14
++20
++12
++8
++10
++17
+-15
+-8
++15
++19
+-14
+-3
+-10
++2
++4
+-1
++14
+-12
++15
+-2
+-11
+-14
+-18
++6
+-12
++7
++18
++15
++6
++12
++3
+-6
++17
++11
++14
++13
++3
++6
+-11
+-19
+-5
++14
+-10
+-7
++18
+-8
+-13
+-2
++19
+-18
+-17
++11
++14
++17
++1
++26
++6
++15
++21
+-5
++12
++6
++4
++10
+-8
++16
+-14
++4
+-1
++17
+-15
+-23
++15
++18
++19
++10
+-18
+-2
++15
++15
++13
++5
++10
+-8
++2
+-18
++13
++15
++8
+-19
++2
+-4
+-3
++20
+-3
++12
++6
++13
++13
+-15
++6
+-15
++3
++7
+-19
++11
++17
++15
+-4
+-10
+-14
+-20
++18
+-11
+-17
++8
++12
++3
+-11
++7
+-13
+-4
++19
+-7
+-17
++12
++9
++13
++7
+-13
++24
+-2
++14
+-5
++10
+-6
+-1
+-8
+-5
+-6
++5
++12
++16
++5
+-14
++19
++18
+-9
+-6
+-12
+-2
++19
+-12
+-9
++5
+-4
+-9
+-9
++16
+-19
+-14
+-7
+-24
+-20
++16
++12
++19
++20
+-15
++26
++21
+-2
++12
++4
+-2
++18
+-17
+-12
+-20
++2
++9
++14
++16
++12
+-9
++14
++17
+-19
++11
++3
+-13
+-3
++11
+-14
++18
++9
+-16
+-2
++19
++7
+-10
+-3
++4
++10
++15
++19
+-2
+-5
++2
++2
+-11
++6
+-17
+-11
++6
+-10
++16
++7
+-1
+-2
++19
++6
++16
+-12
++14
+-5
++19
+-12
++1
+-6
+-6
+-2
++7
++19
++17
+-4
++3
++3
++17
++16
+-2
+-10
+-1
+-14
+-2
+-17
+-11
++3
+-21
++15
++11
++7
+-3
+-18
++1
+-15
+-11
++1
+-18
++11
++15
+-17
+-16
+-19
++9
+-5
++16
+-18
++13
++16
+-17
+-1
+-3
+-2
++20
++14
+-13
+-17
++13
++5
++2
++19
++22
+-3
+-22
++10
+-13
++2
+-29
+-27
+-16
++17
+-27
++18
+-13
+-4
++6
+-5
++12
+-16
+-9
++3
++1
++10
+-25
+-1
+-19
++13
++12
++2
+-6
+-12
++3
++25
++28
+-4
++2
++17
+-9
++63
++23
+-8
++9
+-6
++15
+-14
++12
++6
++18
+-6
+-15
++12
+-16
+-3
++15
++24
++19
+-6
++4
+-8
+-19
++4
++4
+-20
+-1
++24
++10
+-9
++13
++11
++2
++11
++14
+-2
++18
+-12
++1
+-17
++6
++1
+-16
++10
++4
++9
+-6
++10
+-14
+-2
++22
++2
++6
++10
+-19
+-24
++10
++11
++14
++2
++5
++18
++29
++1
++20
++7
++3
+-12
++25
+-21
++24
++4
+-18
++1
++51
++19
+-17
+-23
++31
+-15
++27
++2
++19
+-16
++1
++18
++9
++22
++6
++15
+-19
++14
+-7
++3
++14
+-7
+-15
++18
+-8
+-1
+-14
+-7
+-16
++22
++22
+-2
++18
++2
+-15
+-39
++5
++21
+-5
+-2
++4
++1
++9
+-58
++6
+-95
+-85
+-5
++1
++7
++9
++15
+-117
+-12
+-14
+-18
++70
++9
+-17
++93
+-37
+-134
+-90
++22
+-19
+-7
+-59
++14
+-13
+-47
++213
++81022
++9
++5
++4
+-3
+-16
+-2
++4
++2
++5
+-12
+-9
+-13
++2
+-18
+-18
+-14
++7
++18
+-19
++13
+-1
+-6
++9
+-1
+-18
++15
+-14
+-4
++12
+-1
++5
++16
+-7
++12
++6
+-16
++13
++10
++3
+-11
+-13
++6
+-7
++16
++3
+-6
++19
+-15
++14
+-1
++19
++19
++13
+-9
+-3
+-10
+-14
++15
+-9
++19
+-6
++10
+-7
++11
+-1
++3
++2
+-3
++8
++3
++13
++6
++3
++2
++18
++9
+-17
++13
++15
+-13
++9
++2
++19
++14
+-13
++8
++18
++6
+-4
+-18
++1
+-19
+-1
++10
+-5
+-11
+-10
+-16
+-4
+-5
++3
+-13
+-19
+-18
++16
++16
+-5
++16
+-10
+-8
++9
++14
++1
++9
+-3
++19
+-12
++11
++12
++5
++19
+-9
++4
++15
++19
+-4
+-10
+-12
+-18
+-16
++13
+-4
+-16
+-14
+-15
++18
++1
+-8
+-7
+-18
++3
+-21
++9
+-7
++8
++18
++2
+-11
++6
++10
++9
++11
+-21
++19
++4
++2
++7
++10
+-16
++13
++9
++9
++16
++9
++13
+-11
++16
++10
++14
++13
+-5
+-10
+-16
+-2
+-2
++6
++19
++1
+-16
++14
+-13
++3
+-5
+-4
++12
+-5
++22
++11
+-5
++13
++4
++13
++19
++18
+-13
++15
++19
+-12
+-11
+-19
+-12
++5
+-19
++18
+-19
++5
+-13
+-10
++15
+-8
+-2
+-2
+-11
+-6
++5
+-4
++21
++18
+-5
++18
+-11
++19
++12
+-5
++4
+-16
+-10
++11
+-16
++13
++11
+-1
++15
++4
++13
+-15
++14
+-7
++19
++10
+-8
++19
++4
+-7
++19
++8
++14
+-7
++3
++13
++19
+-9
++4
+-17
+-19
+-11
+-11
+-4
+-16
+-21
+-5
++1
++16
+-11
+-15
+-18
+-13
+-7
+-13
+-21
+-18
++10
++14
++13
+-7
+-1
+-4
++17
++20
++12
+-24
++3
+-8
++3
++10
++11
++11
+-16
++13
++12
++19
+-2
++7
++6
++5
++3
++10
++15
++2
++11
++14
+-9
+-1
+-19
+-16
++9
++17
+-13
++4
++6
++2
++13
++16
++19
++12
++1
++18
++17
++19
++5
+-8
++6
++10
++16
+-9
++13
+-8
+-9
++5
+-12
+-7
+-16
++4
+-12
++18
+-19
+-7
++2
++2
+-19
++10
++19
++9
+-6
+-18
++4
++18
+-11
+-13
+-11
+-16
++3
+-4
+-11
+-2
++10
+-14
++16
++14
+-1
++2
++1
++4
+-9
++17
+-5
+-14
+-15
+-13
++16
+-8
+-11
++2
++19
++23
++15
+-13
++20
++3
++7
++9
++17
++10
+-11
+-19
+-19
++9
+-17
++12
+-20
+-22
++16
+-9
+-18
+-10
+-9
+-81046
diff --git a/main.zig b/main.zig
@@ -0,0 +1,48 @@
+const std = @import("std");
+const debug = std.debug;
+const fmt = std.fmt;
+const io = std.io;
+const mem = std.mem;
+const os = std.os;
+
+pub fn main() !void {
+ var allocator = &std.heap.DirectAllocator.init().allocator;
+ var input = try get_file_contents(allocator, "input_01.txt");
+ defer allocator.free(input);
+
+ debug.warn("01-1: {}\n", total_sum(input));
+}
+
+fn total_sum(input: []const u8) !i32 {
+ var sum: i32 = 0;
+ var index: usize = 0;
+ while (index < input.len) {
+ var e = index;
+ while (input[e] != '\n') {
+ e += 1;
+ }
+ debug.assert('\n' == input[e]);
+
+ var num = try fmt.parseInt(i32, input[index..e], 10);
+ sum += num;
+ index = e + 1;
+ }
+ return sum;
+}
+
+test "total_sum" {
+ const s: []const u8 = "-2\n-3\n+4\n-15\n-15\n+18\n-7\n+11\n-16\n-134\n+200\n";
+ debug.assert(41 == try total_sum(s));
+}
+
+fn get_file_contents(allocator: *mem.Allocator, file_name: []const u8) ![]u8 {
+ var file = try os.File.openRead(file_name);
+ defer file.close();
+
+ const file_size = try file.getEndPos();
+
+ var file_in_stream = io.FileInStream.init(file);
+ var buf_stream = io.BufferedInStream(io.FileInStream.Error).init(&file_in_stream.stream);
+ const st = &buf_stream.stream;
+ return try st.readAllAlloc(allocator, 2 * file_size);
+}