7R5IKOBGJYGMA6QA62SX2HV3I273YSVENO6ZH44B5WMOS7CBKWLQC
TPRUTETYQBXMJVMGSTO573TGCXWXQA4642VSPLRBTJ6YN5UVMZ2QC
57AYZ4CE3UAVPQBYXB7AIPHSCY6D52JZ7NSLXEUOWHRWTO5EEILQC
3VODQFYKH7UOGTAUOFKDXJ367DNANTGNCEIVPKP2DPJ4FRVAVONQC
PO3RQKQZLMF2JDVLW7PFISPZQ5XO4LI7LULEIO2D2XY36HYP5M3QC
37QWQTZRMBJPETT5SN2KZI4FJZO7QR3WI5PPX5EYBTHDXP4SJ7SAC
BTFNDRTSQBBHPEVCLP2GDZJZGUANGGXLCORLLOLP3SSDOZLBTB4AC
CDD5A22OBX2TLHQKYQK2N6JULB7LGVYNMD6ISDDQXQ4A4GDH2DZQC
YBEZ6VLHQE6NM6ZAK7OCM4FMBKBLDZTULSXRWA3ZIWPH6N2GFB3AC
MSLXV7SXVK7GMHAG3CUY32HPSD7BBIROYYL6JH63OCQDA2UU6NBQC
WDLJ4FUDDNWFM434GA72DTPM7TKI7CIKSOICARMRP7GBGMIFCD6AC
QFVLI5NVVPV4FURRO4Z3SOTEJQQ37CY67GR2TVXYM5MAYFX3LZJQC
DOZ7AYOAG5XXANHYRZY42LA43BCMDUS43ZAZHI7J4YGY7VYYPXEQC
MZKTSM2IQP6PPTQH4SZY72Z5JZ32PR5JAUN4SOKY2R3C2UP3LU7QC
XXUJ3TKYD7HXJDKDBFFGB7VIEMEOXLIOCVUVFIYMPF5EDWVDAOLQC
TG7SJXHRTGXJ5ZM3UMPYHECHIN3VAOEHG3PUUSSWIVLRTZUZ6WJAC
4SJSEWAGUFAQMAZXQ4SSXN5OYGXUHX26G2A43RJUL2WGYVI2STYQC
ISKIMCRTCM4ZY34QENDO4AN7ZAKRRBPFLA5MYHXH2K6Q2WKJDZNQC
J5ZDIONDNUHFQESBKVHJY6SOMOMY5G27NNWYXKENBI4PKM2Y2M6AC
FTYBC7WGD6LTHF3HWWQZO5KUVOJD7DALKOJGGXQGFFCCDQVLOCBAC
4JNBKPAS54EZSRZR7HXDZZGDZFPXRQ5SGZFG6XZNYA2RUTR7ME2AC
TYIMCQZ4CP2JSZVNXULIFZOMTENG3NDCUSH2XJQBJQVF3UPNYS7AC
QT4MDJ4BERH7KCQV4OEZPVVAKJ5KBG77YN42FVCWXWB5MUXFQ2JQC
MUEUHLZANBSXCPLXBLRIENE3J73IH2PAYWUNUSYATJIAF2I6XE4QC
MA6J7W4IEKA4TPB7SV7Z4F3LAIUKKVS63ZLLDB3UQPRR54RDJHXAC
IBRBP2QLF53JKGBCXVJ3L6WRMM4DHRA7JUSXLRP7BRKPZXZH7QFAC
KSVQ5PTHDM72W2W4HAEXX6FQZZEIKX44NXEE3X4G22CQ22274I6QC
MYHZJ6F4XLKLZIQXZBDPLE2IZNIP2WVVLHHITO6AQZTRRWCR3OQQC
6HTT5FEZATVVH2VMSKPKBPYLUWUWBDBKCK4CWUURA4WXKU7NNOAQC
C2HRVWVGJUZSSX5AT5HQAO4A4NZLMEFVNI7AHWKXVT3PX2OBYZQAC
65A4T47IAWVWHN4E2NDGXVCI3SCMVNQQS3OM377US2ORTHJCWZKAC
QBPUYYX77BA2WDPCGZCIYQ3NCSHWRZA7YALZEFODQASRT2QBDNDAC
XBGK22DS4GGTQQFDPWUD6WSGUYNTK7MTOK5P5ZD35PNKKB2PSRNQC
5PRQWAH2TDXUDMEDIGJRIJPEOB4EVN7763W7C332P367DHB3VMSAC
CBELPXH6IBM3S5L4IAR7J2PDUIZNQV4P3MCTIVU6IS4KIX5BQRCQC
S666HJ6Q2QQIWMJ3WUJXZ5P4M7M3D7V2LMZHFOVRYXGCFVL6R2GQC
Q6AOS6WLNWE37HIAWAM2O7BNZHPF5E7KZYRBGNFTNQWLKHHG2CUQC
OGGHZPIWOOEEAQBJZ63D5U5V3ZZ5IJFNIWJS733HHZ4NECBPPGXAC
BS24U5D4L34LGI562DLQ4YKGOM2CUCXOU2KXWOH2APJ7K55YCEVQC
NBWIQLPZIFZRXGCDMIFXQAAWWVQEOJDP6KIALLI2NJE4YSNCCNOAC
SPON6U5RKD4XUHNHLXYUQ2IVY7VGQZT4U4MHDHH7BJBMLW42CZGAC
4TF5FCXVZAF23QJQ7H3I7QGCVUK33O6V37YUXVFEL64FPC5HRG6QC
4FDJNKVA3K4JLSUPNALFOVXU3OLTNSOWEPUTS2RQGKM5YXWM74YAC
UEINQUTKBUQEGQXJ3MFEBPRKNWI6ATMANFCHTMOOYRX5Y24FKYQQC
NNEOPQV6SNXJVL3UOUR45I4PLDL5IV72FE4GAQPJSHHRXGFL6QTAC
DEBJKGU2F4MD5O3DMLE3XPKOGJOAG2KZHMQX7DP52RAP4HBKGFSQC
CD3QNDB3NQYMOMGANUU5B2XOX2LMII57DQ53Q2HJC5DSM4GCJB3AC
TN7NPXNSXBULTXOU444VTHLR36NJJO32ZFVJJVYUHSQN7BPFEGPAC
// @compileLog(dsa);
// @compileLog(dsb);
_ = @field(aoc2021, dsa).first() catch unreachable;
if (day < 24) _ = @field(aoc2021, dsb).second() catch unreachable;
_ = @field(aoc2021, dsa).first(arena.allocator()) catch unreachable;
if (day < 24) _ = @field(aoc2021, dsb).second(arena.allocator()) catch unreachable;
pub fn second() !usize {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
var queue = std.PriorityQueue(StateQueue, void, lessThan).init(allocator, {});
pub fn second(allocator: ?std.mem.Allocator) !usize {
var queue = std.PriorityQueue(StateQueue, void, lessThan).init(allocator.?, {});
pub fn first() !usize {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
var queue = std.PriorityQueue(StateQueue, void, lessThan).init(allocator, {});
pub fn first(allocator: ?std.mem.Allocator) !usize {
var queue = std.PriorityQueue(StateQueue, void, lessThan).init(allocator.?, {});
pub fn second() !RetType {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
const sd = try parseInput(allocator);
pub fn second(allocator: ?std.mem.Allocator) !RetType {
const sd = try parseInput(allocator.?);
pub fn first() !RetType {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
const allocator = arena.allocator();
const sd = try parseInput(allocator);
pub fn first(allocator: ?std.mem.Allocator) !RetType {
const sd = try parseInput(allocator.?);
pub fn second() !usize {
const gpa = std.heap.page_allocator;
var arena = std.heap.ArenaAllocator.init(gpa);
const allocator = arena.allocator();
pub fn second(allocator: ?std.mem.Allocator) !usize {
var arena = std.heap.ArenaAllocator.init(allocator.?);
const first = try parseSnail(allocator, &a[0..], null, &pos);
const ab = try first.add(allocator, &b[0..]);
try reduce(allocator, ab);
const first = try parseSnail(arena.allocator(), &a[0..], null, &pos);
const ab = try first.add(arena.allocator(), &b[0..]);
try reduce(arena.allocator(), ab);
pub fn first() !RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
const input = try parseInput(allocator);
defer allocator.free(input);
pub fn first(allocator: ?std.mem.Allocator) !RetType {
const input = try parseInput(allocator.?);
defer allocator.?.free(input);
pub fn second() anyerror!RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var p = try parseInput(allocator);
pub fn second(allocator: ?std.mem.Allocator) anyerror!RetType {
var p = try parseInput(allocator.?);
pub fn second() anyerror!RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var p = try parseInput(allocator);
pub fn second(allocator: ?std.mem.Allocator) anyerror!RetType {
var p = try parseInput(allocator.?);
pub fn first() anyerror!RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var p = try parseInput(allocator);
pub fn first(allocator: ?std.mem.Allocator) anyerror!RetType {
var p = try parseInput(allocator.?);
pub fn second() anyerror!RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var cave = try parseInput(allocator);
pub fn second(allocator: ?std.mem.Allocator) anyerror!RetType {
var cave = try parseInput(allocator.?);
pub fn first() anyerror!RetType {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var cave = try parseInput(allocator);
pub fn first(allocator: ?std.mem.Allocator) anyerror!RetType {
var cave = try parseInput(allocator.?);
pub fn second() anyerror!retSize {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const allocator = gpa.allocator();
var bg = try parseInput(allocator);
pub fn second(allocator: ?std.mem.Allocator) anyerror!retSize {
var bg = try parseInput(allocator.?);