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; }