You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.5 KiB
Zig

const std = @import("std");
const warn = std.debug.warn;
pub fn main() anyerror!void{
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = &arena.allocator;
//read data from file.
//each line is one number
var file = try std.fs.cwd().openFile("input1", .{});
defer file.close();
const file_size:u64 = try file.getEndPos();
std.debug.print("{0} \n", .{file_size});
var buffer = try allocator.alloc(u8, file_size);
var reader = file.reader();
var size = try reader.read(buffer);
std.debug.print("{0} \n", .{buffer});
//read from buffer
//put value in array
//is value 10?
//finish array, interpret as int32.
const numberArr: []u32 = try allocator.alloc(u32, 4);
var i:i32 = 0;
for(buffer) |byte|{
if(byte == 10){
i=0;
//std.debug.print("{0}", .{@as(i32,numberArr)});
}else{
//numberArr.push(byte);
}
i += 1;
}
// for(buffer) |byte|{
// if(byte == 10){
// std.debug.print("Newline!\n", .{});
// }else{
// std.debug.print("{0}", .{byte});
// }
// }
//what two numbers from the input file add up to 2020?
//once those two numbers have been found, multiply them
//naive:
//foreach number |num1|
//foreach number |num2|
//if(num1+num2 = 2020)
//return num1*num2
//v2
//foreach number |num1|
// if(number.contains(2020-num1))
// return num1*(num2;
}