Day 01
This commit is contained in:
33
01/src/main.zig
Normal file
33
01/src/main.zig
Normal file
@@ -0,0 +1,33 @@
|
||||
const std = @import("std");
|
||||
|
||||
fn rocket(in: i64) i64 {
|
||||
var x: i64 = @divFloor(in, 3) - 2;
|
||||
if (x < 0) {
|
||||
x = 0;
|
||||
}
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
pub fn main() anyerror!void {
|
||||
const file = std.io.getStdIn();
|
||||
const stream = &file.inStream().stream;
|
||||
|
||||
var buf: [20]u8 = undefined;
|
||||
var sum1: i64 = 0; // part 1
|
||||
var sum2: i64 = 0; // part 2
|
||||
|
||||
while (try stream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
|
||||
const mass = try std.fmt.parseInt(i64, line, 10);
|
||||
var rock = rocket(mass);
|
||||
sum1 += rock;
|
||||
while (rock > 0) {
|
||||
sum2 += rock;
|
||||
rock = rocket(rock);
|
||||
}
|
||||
}
|
||||
|
||||
std.debug.warn("Part 1: {}\n", sum1);
|
||||
std.debug.warn("Part 2: {}\n", sum2);
|
||||
}
|
||||
|
Reference in New Issue
Block a user