Embedded file directly into the binary
This commit is contained in:
parent
d2f66dc8e9
commit
2aa4647c25
@ -1,18 +1,14 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
const file = @embedFile("input");
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var left: [1000]i32 = undefined;
|
var left: [1000]i32 = undefined;
|
||||||
var right: [1000]i32 = undefined;
|
var right: [1000]i32 = undefined;
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day1/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var i: u32 = 0;
|
var i: u32 = 0;
|
||||||
var iter = std.mem.split(u8, file_buf[0..len], "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (i == 1000) continue;
|
if (i == 1000) continue;
|
||||||
left[i] = try std.fmt.parseInt(i32, line[0..5], 10);
|
left[i] = try std.fmt.parseInt(i32, line[0..5], 10);
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
const file = @embedFile("input");
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var left: [1000]i32 = undefined;
|
var left: [1000]i32 = undefined;
|
||||||
var right: [1000]i32 = undefined;
|
var right: [1000]i32 = undefined;
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day1/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var i: u32 = 0;
|
var i: u32 = 0;
|
||||||
var iter = std.mem.split(u8, file_buf[0..len], "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (i == 1000) continue;
|
if (i == 1000) continue;
|
||||||
left[i] = try std.fmt.parseInt(i32, line[0..5], 10);
|
left[i] = try std.fmt.parseInt(i32, line[0..5], 10);
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const State = enum { First, Second, Incr, Decr }; // Increase Decrease
|
const State = enum { First, Second, Incr, Decr }; // Increase Decrease
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
|
||||||
var second_buf: [64]u8 = undefined;
|
var second_buf: [64]u8 = undefined;
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
const file = try std.fs.cwd().openFile("day2/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var total_safe: usize = 0;
|
var total_safe: usize = 0;
|
||||||
var iter = std.mem.split(u8, file_buf[0..len], "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
|
||||||
|
@ -1,18 +1,14 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const State = enum { First, Second, Incr, Decr }; // Increase Decrease
|
const State = enum { First, Second, Incr, Decr }; // Increase Decrease
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
|
||||||
var second_buf: [64]u8 = undefined;
|
var second_buf: [64]u8 = undefined;
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
const file = try std.fs.cwd().openFile("day2/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var total_safe: usize = 0;
|
var total_safe: usize = 0;
|
||||||
var iter = std.mem.split(u8, file_buf[0..len], "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const LookingFor = enum {
|
const LookingFor = enum {
|
||||||
m,
|
m,
|
||||||
@ -10,14 +11,8 @@ const LookingFor = enum {
|
|||||||
Y,
|
Y,
|
||||||
};
|
};
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
const file = try std.fs.cwd().openFile("day3/input", .{});
|
try std.testing.expectEqual(190604937, try parse(file));
|
||||||
defer file.close();
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
try std.testing.expectEqual(190604937, try parse(file_buf[0..len]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse(input: []const u8) !u32 {
|
fn parse(input: []const u8) !u32 {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const LookingFor = enum {
|
const LookingFor = enum {
|
||||||
m_or_d,
|
m_or_d,
|
||||||
@ -16,15 +17,8 @@ const LookingFor = enum {
|
|||||||
r_brace_do,
|
r_brace_do,
|
||||||
};
|
};
|
||||||
|
|
||||||
var file_buf: [1024 * 1024]u8 = undefined; // The file do 20kB, I give it 1MB
|
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
const file = try std.fs.cwd().openFile("day3/input", .{});
|
try std.testing.expectEqual(82857512, try parse(file));
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const len = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
try std.testing.expectEqual(82857512, try parse(file_buf[0..len]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse(input: []const u8) !u32 {
|
fn parse(input: []const u8) !u32 {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
var file_buf: [140 * 141]u8 = undefined;
|
|
||||||
var matrice: [143][143]u8 = undefined;
|
var matrice: [143][143]u8 = undefined;
|
||||||
const masks = [_][4][4]u8{
|
const masks = [_][4][4]u8{
|
||||||
[4][4]u8{
|
[4][4]u8{
|
||||||
@ -81,12 +81,7 @@ fn setMatrice(c: u8) void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn fillMatrice() !void {
|
fn fillMatrice() !void {
|
||||||
const file = try std.fs.cwd().openFile("day4/input", .{});
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
_ = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var iter = std.mem.split(u8, &file_buf, "\n");
|
|
||||||
|
|
||||||
var x: usize = 1;
|
var x: usize = 1;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
var file_buf: [140 * 141]u8 = undefined;
|
|
||||||
var matrice: [142][142]u8 = undefined;
|
var matrice: [142][142]u8 = undefined;
|
||||||
const masks = [_][3][3]u8{
|
const masks = [_][3][3]u8{
|
||||||
[3][3]u8{
|
[3][3]u8{
|
||||||
@ -53,12 +53,7 @@ fn setMatrice(c: u8) void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn fillMatrice() !void {
|
fn fillMatrice() !void {
|
||||||
const file = try std.fs.cwd().openFile("day4/input", .{});
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
_ = try file.readAll(&file_buf);
|
|
||||||
|
|
||||||
var iter = std.mem.split(u8, &file_buf, "\n");
|
|
||||||
|
|
||||||
var x: usize = 1;
|
var x: usize = 1;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const Rule = struct {
|
const Rule = struct {
|
||||||
left: usize,
|
left: usize,
|
||||||
@ -51,21 +52,11 @@ pub fn main() !void {
|
|||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
if (deinit_status == .leak) @panic("TEST FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========= Load file ===========
|
|
||||||
const file = try std.fs.cwd().openFile("day5/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
// ========= Parse Rules ===========
|
// ========= Parse Rules ===========
|
||||||
var bad_rules = std.AutoHashMap(Rule, void).init(allocator);
|
var bad_rules = std.AutoHashMap(Rule, void).init(allocator);
|
||||||
defer bad_rules.deinit();
|
defer bad_rules.deinit();
|
||||||
|
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) break;
|
if (std.mem.eql(u8, line, "")) break;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const Rule = struct {
|
const Rule = struct {
|
||||||
left: usize,
|
left: usize,
|
||||||
@ -51,21 +52,11 @@ pub fn main() !void {
|
|||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
if (deinit_status == .leak) @panic("TEST FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========= Load file ===========
|
|
||||||
const file = try std.fs.cwd().openFile("day5/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
// ========= Parse Rules ===========
|
// ========= Parse Rules ===========
|
||||||
var bad_rules = std.AutoHashMap(Rule, void).init(allocator);
|
var bad_rules = std.AutoHashMap(Rule, void).init(allocator);
|
||||||
defer bad_rules.deinit();
|
defer bad_rules.deinit();
|
||||||
|
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) break;
|
if (std.mem.eql(u8, line, "")) break;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const UP = Position{ .x = -1, .y = 0 };
|
const UP = Position{ .x = -1, .y = 0 };
|
||||||
const RIGHT = Position{ .x = 0, .y = 1 };
|
const RIGHT = Position{ .x = 0, .y = 1 };
|
||||||
@ -89,25 +90,8 @@ const Map = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
|
||||||
const allocator = gpa.allocator();
|
|
||||||
defer {
|
|
||||||
const deinit_status = gpa.deinit();
|
|
||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
|
||||||
}
|
|
||||||
|
|
||||||
// ========= Load file ===========
|
|
||||||
const file = try std.fs.cwd().openFile("day6/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
// ========= Parse map ===========
|
// ========= Parse map ===========
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
var map = Map{};
|
var map = Map{};
|
||||||
|
|
||||||
for (0..132) |x| {
|
for (0..132) |x| {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const VisitedBy = struct { up: bool = false, down: bool = false, right: bool = false, left: bool = false };
|
const VisitedBy = struct { up: bool = false, down: bool = false, right: bool = false, left: bool = false };
|
||||||
|
|
||||||
@ -211,18 +212,8 @@ pub fn main() !void {
|
|||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
if (deinit_status == .leak) @panic("TEST FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========= Load file ===========
|
|
||||||
const file = try std.fs.cwd().openFile("day6/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
// ========= Parse map ===========
|
// ========= Parse map ===========
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
var map = try Map.init(allocator);
|
var map = try Map.init(allocator);
|
||||||
defer map.deinit();
|
defer map.deinit();
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
// Look like the complexity is 2 ^ (n - 1)
|
// Look like the complexity is 2 ^ (n - 1)
|
||||||
// with n len of a int list
|
// with n len of a int list
|
||||||
@ -13,24 +14,7 @@ const Operator = struct {
|
|||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
// const test_value = "190: 10 19\n3267: 81 40 27\n83: 17 5\n156: 15 6\n7290: 6 8 6 15\n161011: 16 10 13\n192: 17 8 14\n21037: 9 7 18 13\n292: 11 6 16 20";
|
// const test_value = "190: 10 19\n3267: 81 40 27\n83: 17 5\n156: 15 6\n7290: 6 8 6 15\n161011: 16 10 13\n192: 17 8 14\n21037: 9 7 18 13\n292: 11 6 16 20";
|
||||||
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
|
||||||
const allocator = gpa.allocator();
|
|
||||||
defer {
|
|
||||||
const deinit_status = gpa.deinit();
|
|
||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
|
||||||
}
|
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day7/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
var iter = std.mem.split(u8, buffer[0..file_size], "\n");
|
|
||||||
var total: usize = 0;
|
var total: usize = 0;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
// Look like the complexity is 2 ^ (n - 1)
|
// Look like the complexity is 2 ^ (n - 1)
|
||||||
// with n len of a int list
|
// with n len of a int list
|
||||||
//
|
//
|
||||||
// So that mean I need to do
|
// Very happy with this solution, I juste needed to update like 5 things to make part 2 work
|
||||||
|
|
||||||
const Operator = struct {
|
const Operator = struct {
|
||||||
value: usize,
|
value: usize,
|
||||||
@ -14,23 +15,7 @@ const Operator = struct {
|
|||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
// const test_value = "190: 10 19\n3267: 81 40 27\n83: 17 5\n156: 15 6\n7290: 6 8 6 15\n161011: 16 10 13\n192: 17 8 14\n21037: 9 7 18 13\n292: 11 6 16 20";
|
// const test_value = "190: 10 19\n3267: 81 40 27\n83: 17 5\n156: 15 6\n7290: 6 8 6 15\n161011: 16 10 13\n192: 17 8 14\n21037: 9 7 18 13\n292: 11 6 16 20";
|
||||||
|
|
||||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
const allocator = gpa.allocator();
|
|
||||||
defer {
|
|
||||||
const deinit_status = gpa.deinit();
|
|
||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
|
||||||
}
|
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day7/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
var iter = std.mem.split(u8, buffer[0..file_size], "\n");
|
|
||||||
var total: usize = 0;
|
var total: usize = 0;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
const MAP_SIZE = 50;
|
const MAP_SIZE = 50;
|
||||||
|
|
||||||
@ -110,18 +111,9 @@ pub fn main() !void {
|
|||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
if (deinit_status == .leak) @panic("TEST FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day8/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
var map = Map{ .unique_antenna = std.AutoHashMap(u8, usize).init(allocator) };
|
var map = Map{ .unique_antenna = std.AutoHashMap(u8, usize).init(allocator) };
|
||||||
defer map.unique_antenna.deinit();
|
defer map.unique_antenna.deinit();
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
var x: usize = 0;
|
var x: usize = 0;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
const file = @embedFile("input");
|
||||||
|
|
||||||
// Agaain happy with the result, only needed to change few things
|
// Agaain happy with the result, only needed to change few things
|
||||||
|
|
||||||
@ -120,18 +121,9 @@ pub fn main() !void {
|
|||||||
if (deinit_status == .leak) @panic("TEST FAIL");
|
if (deinit_status == .leak) @panic("TEST FAIL");
|
||||||
}
|
}
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("day8/input", .{});
|
|
||||||
defer file.close();
|
|
||||||
|
|
||||||
const file_size = (try file.stat()).size;
|
|
||||||
const buffer = try allocator.alloc(u8, file_size);
|
|
||||||
defer allocator.free(buffer);
|
|
||||||
|
|
||||||
_ = try file.readAll(buffer);
|
|
||||||
|
|
||||||
var map = Map{ .unique_antenna = std.AutoHashMap(u8, usize).init(allocator) };
|
var map = Map{ .unique_antenna = std.AutoHashMap(u8, usize).init(allocator) };
|
||||||
defer map.unique_antenna.deinit();
|
defer map.unique_antenna.deinit();
|
||||||
var iter = std.mem.split(u8, buffer, "\n");
|
var iter = std.mem.split(u8, file, "\n");
|
||||||
var x: usize = 0;
|
var x: usize = 0;
|
||||||
while (iter.next()) |line| {
|
while (iter.next()) |line| {
|
||||||
if (std.mem.eql(u8, line, "")) continue;
|
if (std.mem.eql(u8, line, "")) continue;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user