blob: f2ba9d094819971834df6ac37996e4d7b197eb6d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
const std = @import("std");
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
const args = try std.process.argsAlloc(allocator);
if (args.len != 3) return error.InvalidArguments;
const part = try std.fmt.parseInt(u32, args[1], 10);
const output_file_path = args[2];
var output_file = try std.fs.cwd().createFile(output_file_path, .{});
defer output_file.close();
var output_buffer: [512]u8 = undefined;
var output_writer = output_file.writer(&output_buffer);
const output = &output_writer.interface;
try output.print(
\\const std = @import("std");
\\const solution = @import("solution");
\\
\\pub fn main() !void {{
\\ const data = @embedFile("input");
\\
\\ var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
\\ defer arena.deinit();
\\ const allocator = arena.allocator();
\\
\\ const input = try solution.parse(allocator, data);
\\ const output = try solution.part{}(allocator, input);
\\ var stdout_writer = std.fs.File.stdout().writer(&.{{}});
\\ const stdout = &stdout_writer.interface;
\\ try stdout.print("{{}}\n", .{{output}});
\\}}
,
.{part},
);
try output.flush();
return std.process.cleanExit();
}
|