Compare commits

..

11 Commits

Author SHA1 Message Date
Lol3rrr
54dad514be Implement 2025 - Day 5 - Part 2 2026-01-09 01:03:43 +01:00
Lol3rrr
fcf2c58b71 Implement 2025 - Day 5 - Part 1 2026-01-09 00:33:29 +01:00
Lol3rrr
4fe10ee925 Implement 2025 - Day 4 - Part 2 2026-01-09 00:15:42 +01:00
Lol3rrr
3d7e206196 Implement 2025 - Day 4 - Part 1 2026-01-09 00:10:39 +01:00
Lol3rrr
25c879c528 Implement 2025 - Day 3 - Part 2 2026-01-08 23:47:10 +01:00
Lol3rrr
fe7df95f17 Implement 2025 - Day 3 - Part 1 2026-01-08 22:23:37 +01:00
Lol3rrr
c40f1c822f Implement 2025 - Day 2 - Part 2 2026-01-08 20:54:19 +01:00
Lol3rrr
c7ad6b02a8 Implement 2025 - Day 2 - Part 1 2026-01-08 20:24:22 +01:00
Lol3rrr
4347fb2131 Implement 2025 - Day 1 - Part 2 2026-01-08 19:42:42 +01:00
Lol3rrr
c7454a0202 Implement 2025 - Day 1 - Part 1 2026-01-08 19:21:43 +01:00
Lol3rrr
44335ca03c Basic README input 2026-01-08 19:20:56 +01:00
16 changed files with 6483 additions and 0 deletions

81
2025/01.rs Normal file
View File

@@ -0,0 +1,81 @@
---cargo
---
static CONTENT: &'static str = include_str!("./inputs/01_1.txt");
#[derive(Debug)]
enum Direction {
Left,
Right,
}
#[derive(Debug)]
struct Rotation {
direction: Direction,
amount: usize,
}
fn main() {
let rotations: Vec<Rotation> = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| {
let (direction, raw_amount) = l.split_at(1);
let direction = match direction {
"L" => Direction::Left,
"R" => Direction::Right,
other => unreachable!("Unknown Direction: {:?}", other),
};
let amount = match raw_amount.parse::<usize>() {
Ok(a) => a,
Err(e) => unreachable!("Invalid Amount ({:?}): {:?}", raw_amount, e),
};
Rotation {
direction,
amount,
}
}).collect();
println!("Rotations: {:#?}", rotations);
let mut count: usize = 0;
let mut state: isize = 50;
for rot in rotations.iter() {
if rot.amount >= 100 {
count += rot.amount / 100;
}
let amount = rot.amount % 100;
if amount == 0 {
continue;
}
match rot.direction {
Direction::Left => {
if state != 0 && amount > state as usize {
count += 1;
}
state = state.strict_sub_unsigned(amount);
state = state.strict_rem_euclid(100);
if state == 0 {
count += 1;
}
}
Direction::Right => {
state = state.strict_add_unsigned(amount);
if state >= 100 {
count += 1;
}
state = state.strict_rem_euclid(100);
}
};
println!("Applying {:?} => {} ({})", rot, state, count);
}
println!("Result: {}", count);
}

52
2025/02.rs Normal file
View File

@@ -0,0 +1,52 @@
---cargo
---
static CONTENT: &'static str = include_str!("./inputs/02_1.txt");
fn main() {
let ranges: Vec<_> = CONTENT.split(',').map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| {
let (raw_start, raw_end) = l.split_once('-').unwrap();
let start: usize = raw_start.parse().unwrap();
let end: usize = raw_end.parse().unwrap();
start..=end
}).collect();
println!("Ranges: {:?}", ranges);
let mut result = 0;
for r in ranges.iter() {
for v in r.clone() {
let v_len = v.ilog10() + 1;
let mut iter = (1..=v_len/2).filter_map(|len| {
if v_len % len != 0 {
return None;
}
let mut seqs = (0..v_len/len).map(|i| {
let offset = 10_usize.pow(i*len);
let mask = 10_usize.pow(len);
(v/offset) % mask
});
let first = match seqs.next() {
Some(f) => f,
None => return None,
};
let invalid = seqs.all(|s| s == first);
invalid.then_some((first, len, v_len/len))
});
let first = iter.next();
if first.is_some() {
println!("{} - {:?}", v, first);
result += v;
}
}
}
println!("Result: {}", result);
}

77
2025/03.rs Normal file
View File

@@ -0,0 +1,77 @@
---cargo
---
static CONTENT: &'static str = include_str!("./inputs/03_1.txt");
#[derive(Debug)]
struct Bank {
values: [Option<(usize, usize)>; 10],
}
fn main() {
let raw_banks: Vec<Vec<u8>> = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| {
l.chars().map(|c| {
match c {
'0' => 0,
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
'6' => 6,
'7' => 7,
'8' => 8,
'9' => 9,
c => unreachable!("Other {:?}", c),
}
}).collect::<Vec<u8>>()
}).collect();
println!("{:?}", raw_banks);
let mut result = 0usize;
for bank in raw_banks.iter() {
println!("{:?}", bank);
let mut bank_iter = bank.iter();
let mut digits: Vec<_> = (&mut bank_iter).take(12).collect();
println!("Starting Digits {:?}", digits);
for other in bank_iter {
// println!("Looking to add {}", other);
let to_remove = digits.windows(2).enumerate().find_map(|(idx, window)| {
if window[0] >= window[1] {
return None;
}
Some(idx)
});
// dbg!(to_remove);
match to_remove {
Some(to_remove) => {
digits.remove(to_remove);
digits.push(other);
}
None => {
if digits.last().copied().unwrap() < other {
digits.pop();
digits.push(other);
}
}
};
}
println!("Ending Digits {:?}", digits);
let bank_value = digits.iter().copied().rev().enumerate().fold(0usize, |acc, (idx, v)| {
acc + (*v as usize * 10usize.pow(idx as u32))
});
println!("Value {:?}", bank_value);
result += bank_value;
}
println!("Result: {:?}", result);
}

55
2025/04.rs Normal file
View File

@@ -0,0 +1,55 @@
---cargo
---
static CONTENT: &'static str = include_str!("./inputs/04_1.txt");
static GRID_OFFSETS: [(isize, isize); 8] = [(-1, -1), (0, -1), (1, -1), (-1, 0), (1, 0), (-1, 1), (0, 1), (1, 1)];
#[derive(Debug, PartialEq, Clone)]
enum Cell {
Empty,
PRoll,
}
fn main() {
let mut grid: Vec<_> = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| {
l.chars().map(|c| match c {
'.' => Cell::Empty,
'@' => Cell::PRoll,
other => unreachable!("Unexpected Input {:?}", other),
}).collect::<Vec<_>>()
}).collect();
let mut result = 0;
loop {
let mut to_remove = Vec::new();
for (y, row) in grid.iter().enumerate() {
for (x, cell) in row.iter().enumerate() {
if cell != &Cell::PRoll {
continue;
}
let neighbours = GRID_OFFSETS.iter().filter_map(|(xoff, yoff)| Some((x.checked_add_signed(*xoff)?, y.checked_add_signed(*yoff)?))).filter_map(|(x, y)| {
let cell = grid.get(y)?.get(x)?;
Some((x, y, cell.clone()))
}).filter(|(_, _, c)| c == &Cell::PRoll).count();
if neighbours < 4 {
result += 1;
to_remove.push((x, y));
}
}
}
if to_remove.is_empty() {
break;
}
for (x, y) in to_remove {
grid[y][x] = Cell::Empty;
}
}
println!("Result: {}", result);
}

46
2025/05.rs Normal file
View File

@@ -0,0 +1,46 @@
---cargo
---
static CONTENT: &'static str = include_str!("./inputs/05_1.txt");
fn main() {
let mut ranges: Vec<_> = CONTENT.lines().map(|l| l.trim()).take_while(|l| !l.is_empty()).map(|r| {
let (start, end) = r.split_once('-').unwrap();
let start = start.parse::<usize>().unwrap();
let end = end.parse::<usize>().unwrap();
start..=end
}).collect();
loop {
let result: Option<(usize, usize)> = ranges.iter().enumerate().find_map(|(idx, r)| {
ranges.iter().enumerate().filter(|(o_idx, _)| idx != *o_idx).find_map(|(o_idx, other)| {
r.contains(other.start()).then_some((idx, o_idx))
})
});
let (idx, o_idx) = match result {
Some(r) => r,
None => break,
};
let first = ranges[idx].clone();
let second = ranges[o_idx].clone();
let new_range_start: usize = *first.start().min(second.start());
let new_range_end: usize = *first.end().max(second.end());
let new_range = new_range_start..=new_range_end;
println!("Merge\n{:?} +\n{:?} =\n{:?}", first, second, new_range);
ranges[idx] = new_range;
ranges.remove(o_idx);
}
ranges.sort_by_key(|v| (*v.start(), *v.end()));
println!("Ranges: \n{:#?}", ranges);
let result: usize = ranges.iter().map(|r| r.clone().count()).sum();
println!("Result: {:?}", result);
}

4604
2025/inputs/01_1.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
L68
L30
R48
L5
R60
L55
L1
L99
R14
L82

1
2025/inputs/02_1.txt Normal file
View File

@@ -0,0 +1 @@
17330-35281,9967849351-9967954114,880610-895941,942-1466,117855-209809,9427633930-9427769294,1-14,311209-533855,53851-100089,104-215,33317911-33385573,42384572-42481566,43-81,87864705-87898981,258952-303177,451399530-451565394,6464564339-6464748782,1493-2439,9941196-10054232,2994-8275,6275169-6423883,20-41,384-896,2525238272-2525279908,8884-16221,968909030-969019005,686256-831649,942986-986697,1437387916-1437426347,8897636-9031809,16048379-16225280

View File

@@ -0,0 +1 @@
11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124

200
2025/inputs/03_1.txt Normal file
View File

@@ -0,0 +1,200 @@
7455337345554393449454442744452533444624555444444525654744644442462265544584444244243377662874573954
4444433574444444521434318444437434434744463343344862443745783646353544443448334445344547344244354484
4454325334739566743455434465374426494464323643934468434765454444555535464455456547468454544534444637
2253633222422222521322222224224222262272124222312722231222222262212233722221212262222125452412392631
1222111334214231341321332223311232114113234132421133324233143211344224341223243324234444111131256789
5552574722261445226642632635456622675165425672633256621353613292945452142158642643242263631127224735
2332532231343123261241313224232361514572322232242233225222222332337363211613222322578362253152228332
3444583257424284574732453333613283357533643446346353834484734436344577745464538846857954427384448844
4455353554554545555555435654454545177665544544452544365893276544438552455556355859553169554555553594
1212213222211325322312232432222122322233322142223232412322222221152222512222212325222322222234732222
3532323431342366332734322335431332584123282362342232521333623521562231433242242323322322423422523343
5393555646342743842471375157346322364344623255433257656427163652244223162252553237255554336243245323
3536335312473322623951263331543434532432322323223374432222256333153252273359232323732652343722222372
1252436712222222227342227122334142252325225422217222224232346334227241322333312142925215211242263821
4445555564354545351744554455354455555453433655437554554331545446444524553643744655344554535344455553
2262334913222223223222122223222542222244222332211232212222222243321222516132237221231222622422222222
4468455455454384872948296641655953578334969369425239274865655978655569965666183954746455448625424753
2642222235131473533342421127644414525211214251112254452322544224663442221523642522242231223443225256
3265372365616256524333422322621222322523323437333253263435362324336432454572353226224354423233134426
3221326322223112223252226442121132123233513132423222212223424224223542223321323211212225421221242243
3232232222334331212321234221222222232113332355232212312242123322232222232422312232225162122132251222
5343224422213735433244533154442143423523327355434263329434214213236233442445413423225342443246453344
5515251446445935674642752243474223533255352762275543236227742345426232244442425425826332414252252543
2212212212316621222252782254641228332222324926235622222226242524622512842226424623542242423252221121
4368254754644555445525653536457444356537652556558555754544544553466455574455756245445766555525335645
3422222122216223332744331214143225142461454321461464262243333322431534123232122463232121524322231434
6524455585758455737455464524534243956662657453835763542313465584777748455655765544465565965623576554
3335453212456437413476673345295332446187757978226246824954372733439348322344143594456842342542441355
3266136442122221382442213236641432262514453232142232231872743323274651753726252423372732133241232424
4463494444654654547646344467365354636515314987585456434747496634624965464549639756587573483854684444
2114123232332223422332232232324222233332223238224624372234353237323322323232322523286332233322233422
3522223123127137322322111421322764249111222222331213323127222224242215222236422235221222312733222422
4482334574463534742435542547664747738934474673437414437357673533474657275432733437557333573234749133
3252768325634699291342622899223547262426392936924332232282931223522478227734563329365815593433222983
4685444454944384634544474736544447444444454846534443346644454434933452334454433646424475494433545444
2152253242253323231333223353133533222222423441452433235343342343232346421422574325221332313214255232
2421212323123323322222217332322321332283225132213241223442323221323321222233212232233133312222214322
7146222363223174322692392522888821382224245264742245427546245222484382852676596328722171274228967123
1525243154323112334233223353215221324112522123432382243314334412312233232134114242633222143233542333
4265433333352336332233836423358353115432244294333325232343333515323514533335353333433123334332532433
1222124222222521222463223272581222154522322423212262241221222812232522222222242252222115224212124222
3432383527463332653453534633363376638222333544133419552343354676223535353345446523333633347334332252
3234224222422732343444232354532223212429152224641323214223434272344444323255342323224423322822314422
3763565345344647646337443767572476638536478155583358756536652836474354535735347388435557463735783366
3355533244531433245243544115333323332245323331233333233237167221464343363535346342132342224322333343
5327552336562262434722626365545242466151553275152553556766256663265436418532963564322653364626225334
4422322322222532123142225222215225212433222122222352442243125212433114222251342452242452212452522212
3335333334326467246434462423344343433643463373385387333433333334694385835431363336233234332344654336
3333243432243333333222232332323332334333333353353333353443333112153333133231237313313233333332212923
4443454444455463443341354544545344353543454545543244234333444542434244443343344435333453743234524444
2633323482566579446243426554326423624333735265331536433363536394453321623353455234332532546463353743
3343333433231233943323144521623343442333734316233323533613333283332344334333343243334432333322142433
3133333235322333442233332223333132433232213213222333723232333321231333321333333324243213233312332213
2221222222222211222222222222112221233322222211222322234211332122322212222323121122242222222122233222
3315563592223432211221326353234221231424372222213226322126222429531322194683223433221322211312213222
1232233644235222811491249211423422212322222212232234911123322352331222323432532392222311212225233713
5223266263378466252643662525357236467544255512423635522575232271542426555123254734236661365774422326
4322382264334332333334442533643443336215235233335363227532323363192373636363423343523544354813634536
8674569592358876363656665765926665661757555381467588652455475368877642358753477378455772873563814683
4224532163324426337442636545231152142563225357421392372316243263662223536223462283325652226655242216
3352222233322433412483345343813353763233232724323235343345359242136432364422634433342326332314347323
3124222362226222523223254222292222661221325321452221434232222232313222518261421224222222314231252242
1222123142322112262612326221225423225221522255121243112222222124227122222431234214212322255222225222
4652694444556369478794843959967447246246752835423825854467545866755658556689544718454533353234278666
3735551322255413643365213643562175698218123272223233263528241132655224375535325423227267549223332324
2313235343323334323323335532413342233533421233333333243244264332241533351321322331434343323233234355
1432233324243323532434323444124433233343436332432341433243333332433234432334354434434333534336232414
6334437343533335553953933733393335953336343434373833324539133347253733336925243483737369613333333343
8633547165561536263543468475833666735665535793445546377734675265615277634334824353438735426966442749
2649226533124333434254296312244432739461239498355268472219224638533627263672223374533436232323141443
7899656565357759337665965746563768669974836674577464786556756634956474678585545465574485368885699347
2352233222235234422155222452193144552263413832224664546335255215533224256136626224248632246453226112
3272293352725532324755622239342441456732342272445252322521189336732426823823522634354432222266142232
3422222222211614126222221423232232224523246132223241212232422247143522322374322122222212224476226224
2223232723232323322232337312222122324323424762543232323346243233334223128323323332224232333232152442
3553525343343475333352734353543443444435151653454344464443553443332233446332434334343432243353234444
2524443424445544343444456443445423544444453233542144444446343444348343344445244434345443444254645344
3536633533264333341445332524534323323433333358336346344438342322935343733284544435643353134363444353
2222232512312222233232323112222131113122243211213221322234222122122322123222212225222221122222222222
4235343442633332414433543324434232334354442344446243323432433434144435444232454323442234344433435243
4454444632434434445344562544643454454344233544344454444544244654934443443644436623534444445444653453
2233523392325613434441235347343232434456322344455242423433443435363641332447341346243324614173425674
3334243321121223233733132221643223423344112923131222632422332232352323234352833322534313335423232223
5588247538579847643379456728728768837876785844978386485793434845567863553987469688875459226635665259
9336533525933323495434437365833435436752346562443556363872337844924579596359635766334357427543563399
3213226733222333352262234332242132332122212224232244243734221332222313224332322322233223215332333436
2335311332324223633265633533323333233322622656333323232323461343112343223632221332333322532213121233
3333353232334333333232332232223343233232233432332333243233232313362522332333331331332342233233222453
5213615362212434163731544243456522222352413136134355782332543223343461432261552252423473545132322432
2669954282344382157328173922924146246762272524639643592584856362634722487556665869321666642952525493
6564655755565455556665545655455563556645465545545553729456553452564466555556556655545545453435552565
1143213235534215114151142552434121314342342422222512212434452551435233423545225435332134334134516789
4433443234334242234426424634543433423344433545444434434343534355353434444364453433344345435441124243
6356647843557437854415775855576575446763366866357935374726754556674665463773725554475867353765673646
2122354324322223422222232422144443222534222125245514213322222412211224942342442222543412233225323322
7535435924672257634573455252452635774552736766439935422556563633363655335342464565621853537237437957
5133243443832333242143514221332243242223133343453242834464123531422344443336414274418314343244453212
7444766457955566574555667658857537786678677985767879664876749698587956476577988744676474557777467574
3333442233244415232833134423444523214444323332341232234224244243132225324462355543323237335735335312
2223323253523453242241313422222223221245222421232335452129223522222225234262224224442425423222152624
3346242122332333333332211265323123323331324421336233433353232336232343117323333533233333323326343133
2332423323436323333432412333333142331922313334322324432333322223332832321323343653333332242314313333
1613345333333422223335332218433334323231342342343314474332222373334323237273231623721422633633325322
3432324322922514231213223312332341141633223333143241232222339322122434322324223225522722322443232321
1343733232453822432221223394136616422262144424223234261242325613442423342172344233432216331135251365
1243223223224322222311221213322121222148212122322222212528212127421372451221221311223292522123222222
4434445544434652434424326434234246425432433547343454444543355543444446346354344354666644614533184395
3234332543342332253334443253234333231242242332443344233214341122232944142433121225323632234222454223
5514243243535324433233113345213252353333226533233533523354233335655323555433331352335544353463313454
2231362162422422614277122122124729225412119144422221248112424222272452222112233224812232261522224221
5746592253277244362522234334616194262598566434433212542572666255222432378764723621416255334632262728
5453632552313337422434145644133753354261243546453263616463331443536455453243643534454565323444234794
5153233342311433633432643442435234443422633334333333733334332521457432333723433232324325343453323233
1653623742923576342854326672643312372513336531767813462244612227416624222513936813528344118532745623
2221222222122222212223322231111122233232222222272122322222232222212222322223222221223222231222221222
2211621221223222211122222222322222222222221222211121424222212412122332222224722212121224221422222252
2224234242325323722553325423223525242217673123327313332284711273227422423263232311292855222243425223
6566652568328785451445335435234375538336754455368473444664254547454834554456566447554453548573443535
7473322863227234651462237132332451327222118435354237551357232676311652383212513422244322223323123556
3284522333252233222722433422314422151156253243725242322245235221243246226143941885823518222222432423
1122227534635557266653955132524264533522515613245673762353345143462755643122233124353756142214712212
4475444474758433543424349444444855353449244292434746533744443693359414474444442442347354417563444255
4253324323132221222122343222222222323111132112323222322421323113211222222322224322333222212243213322
2343434445335254463215546243455435545253424429553435532355342455565542445232532555555351443534631645
3263333251172223322542123231333222323233133551343623212152423523232322332431342115214229311445723364
4375224447443434424625314348442323144337447242652582335334123345544345452843344257362342225132342344
1615263171177374322722537251751471355447724661154125232722553214765767545622543654174524772674152689
4132437322454334621513227856368313753441422524244348464532423246522323242273346123338475242243523233
4113223222233333323333333323333332434624333523233333733333333233433233342313431735233322225434456442
6841753344562684333466242957564721249234374553139447565183252225344223463436333322244462233484122436
2325521175241435122232223154322121213243135221252542582231843122215222222124415413245252531225212224
6156536646252447554342464537646547444536355554427444336556565444544625455424345336555634554657425566
4546455534473345555455555451353355545334356435553564251343555335557564574352435455555455253542474454
2213222322212412222922238233242232211221223212242132111322222222221122212522224312122232122522222222
2323233122243323323224221232223333222323232353313144233232322323422231333333126312324131133321222221
5443455416534455543945433453435254563345523251425534425425145334531524455834523535324445225565424445
3344143222333635421222334362132332322324422334254332232323333534423132222322232221413222331122432323
7568665736454256637755655635842455528464535336755175735443465848559465845423323417437335485453256677
5644243324433341223237633431132222232143452224142352322245421325233242262451234233247522216522274122
6253322222111323124231221522451542813232233225211222212212222322322422222222223422512215542221233323
2412342222221364254642431141424255425455216466523273523243144212766226431422245643542241232663122124
4666562662456411232542235353156133544135624413142235364431436235343126336551255413646432643635253789
2212212232124224323213262624542342316124232213341212412214232233222233532239224313143521233222322114
1512122224526544233333174434142324444724142115351232342332223642434222321244235215322212131223342329
4446465324543414424544444315344434444424432343334143143331335243423334344342343363454324344334324444
2526233344242317153434352433455234542223513442452252122425525513253525543255443351421222352554252122
2133222322325533244125323533282324222332223323322335322432322131232143131422222122122242332223312132
2223322322212211222223121262223321526362326126122233432262222212232622222321123123222321212112323322
3332231334633133332113222432222313321333433331224322232233222343522334323434233332833232522332333532
7543845444333234448333445538314524523353332434334333343853337352133325533533348444632376132333623332
2425241335534465222445972373142322255143632353335254429354322213352331345455255554134737425347225215
2222222221222222222222522222122112222212211232222522222252221214232422221223211222222123242211232252
3234262373235122322213223411122333213243132522823142225332132624436852323323236238323231435255243338
5643244323232322244224221362222262321312315324225432316271225331163433195524352641122223252224334614
4425923234968499845352611234424545288768625563463757654742384266653228263353881565522142651293526821
7345642821551771625344317583834873168383236262675128312173852581762387236528521115414155624672741639
3254342333237346463377753152511735462423726772325562337724554453572541433763446366314454624145673236
6222737314533145845223454334252313245222324413235471244244414422534341242447344321315321444153341432
5333536223684455353735325813236394247465428433333653467449854636365583854474963658556389522948174482
5465685546643689556668878388667675735864275487636845888856765765822588585898354456986586688453556387
3725143425422423722322222233582324743475543333422353312222232121523335352131144544333232112532224322
2414642222413322362741642248282334758277644264523232523337242215836751388313163722735626236418262443
3316322347423632234224752322124343456527333424363725331234117422145334433482127732344332444221742245
4223222221251322322212212321422221222222111121121221222222212232223322222422112223222212242112222231
3323432335934565333352325535333423433323454445226233812332333544816852353323374333434332533257432446
4222221221222353222243311222212222242517222522222232222324222722221323225222131227222232223322222121
2446825528647466443438274344544542683344764537247846746455427744737344246654724466658537543127624744
3523321243734222442522521433153347172462444432444533235624463434425444525427436322414324342634214322
3232313223142261213133222322232323332221233232132121232321231321233432224313332133233322211232213333
3114333243232433241543334432453444532542363423334222834342243832443322423332333346424353133342342334
5234123223223222233463233423234233122214144213232414413343235222237522123133234332243524334242134243
3245434242324946345526234333232323244344446823242252382733935323486423552234258346533833433964532843
3836799347896334776851595238933733533879666525245657967794489337598932391756933639589334883463353334
2152321332232233233332322223235542435675323256212362233222552234323263133385323236351521222542522322
5966354939476987899986989687855573869924283589968842379764965357999636654357384265555439553766877655
7685665481446658736584765655364457426642655865563766265435366585655552762662564464323656786416865515
4236276455222222349523555343945253317265423313396436333321325654534126251546243366335222245245435323
4225473534454461525545433423555242444744344325245243255342315254435434252334241532334559342436525572
2635223321122222422241322242552122131332523124411132222411224223254351522122212223112262464221222494
2751217142326546656335223329223255233442894823343532275273236232694934344424739234314347829567232226
1232223232222123321212232212232234232222225212234222131322223323222122121242222222232224121233323322
6653636573797545642394466355444544494484836342483676646759479544374436656552324534385425334564564255
5222222223222122123212222481422232223232222222242322322222325223311212133222222342323523235212523222
4439637433333293334194643323523951285775123638734823326344132295535522872962336735493794776764233435
3163581424927226661275422662122222235252122632222212122632228514251419837512242222622134122228222641
8225879656457974862287642494698463183862865295378236479286644872679555284468263248517747236924856434
2613252245212322311562427522262325622235242637633222122251812282266665822121732232562165542122267632
2122622493223823342889613331282326764825222736222322214223952226233152353383821323223772222363485443
3513432323285436333733342243734838323586531657736862678123634748563336365357334332365835567353333682
3633423574264452474434463341544747244432446459342523646374346474443334426944443341644285443342344447
1222222322223122232243221122218222213235232341212722313122222223231222112122212323322231242423322232
3533433335544352442323444631583534444448444345274444634357364444432563343746463473545544453333243354
7254444246643343464444344213935329424294245474447236347173414424373694343244732243214464124432365435
3445562333551456542324322322364534666321653245222853464625266662634226653665122527457673665526467566
4224332224233425222223143242212232222261222222423222623224253414643421253322232272214142332221413322
6372523334363333333133693123331825313343248233349367368176633151333628954322341312437336336424433322
4343324633333923333322433363223634523326743433334148243343241141652334334444234432413332132461233521
5252438319415273293427372133226734332423122833732726783676642323133293798613547229836574427399327872
4645454654356354462444454645556453541565453541553441352645353534544844653646636545455555524554425246
5488291583558624714855444945264594545554545534554544945559444474355555865355794954423524154554416461

View File

@@ -0,0 +1,4 @@
987654321111111
811111111111119
234234234234278
818181911112111

139
2025/inputs/04_1.txt Normal file
View File

@@ -0,0 +1,139 @@
@..@@.@..@@@.@@@@@@.@@@@@@@@.@@@.@@@.@.@@@.@....@@@.@...@@.@..@@@@@.@@@.@@...@@.@@@.@@@@.@@@@.@.@@@@..@@@@@@.@.@.@.@@@@.@@.@@.@@@@..@.@.@@@
.@..@@@@@@@.@@@@.@@@@..@@.@.@..@@@.@@@@@@...@@.@@.@...@@@..@.@@@@......@@@@@@@.@@.@.@@@@..@....@.@..@@.@.@@@.@.@@@.@@@@.@@.@.@@..@@@@.@@.@@
@@@..@@@@@@@@@@@.@..@.@@@@@@@@@....@.@.@@@@@.@....@@@@@@.@@@@@@@@@@@@@.@.@@...@@@@@..@@@@@.@..@@@@.@@@@.@@@@@@@@.@@@@@@@@@@@@@@@@.@@@@@@@.@
@@@@@@@.@@@.@.@@@.........@.@@@.@@@@@@.@.@@@@@@@@..@@@.@@@@@@.@.@.@.@.@@@@@@@@.@@@@@@.@...@@@.@@.@@.@@@@@@@.@@.@.@.@@@@.@.@@@.@@@.@@.@.@@@.
..@@..@@@.@@@@@@@.@.@.@@.@@..@@...@@@@@.@@@@@.@@.@@@.@@.@@@@@.@@.......@@..@@..@.@@.@@.@@@.@.@@@@.@..@@@.@@@@@.@@....@@@@@@.@@@@.@@.@@@.@.@
@@@@@@......@@@..@@.@@.@...@.@.@@@@.@.@.@...@@@@.@.@@@@@@@@@@@@...@....@@..@@.@@@@@@@@@..@@..@@@.@@@@@@@@@.@@@.@@@@@.@@@.@@@.@@@@@.@.@.....
.@@@@.@...@@@....@@...@@@@@@@@.@@....@.@.@.@@@@@@@@@@@.@@.....@@@@@@@@@@@.@.@@@@@@@@@@@@.@@@.@@@@@.@@@@@@@..@.@@....@@@..@@.@.@.@.@.@.@@@@.
@@.@@.@@@.@@@@.@..@...@.@@@.@.@@@@..@..@.@@@.@@@@.@...@@@@@@.@.@@@...@@.@@@@@@@@@..@.@@@..@@@@@@@@@@.@@@.@@@@@@...@.@@.@@@.@@...@@@.@.@.@@@
....@.@..@@@@@.@@@@@@@@@@..@@..@@@@.@@.@.@.@@.@@@.@@.@@@@@@.@@@@@.@@.@@@@@..@@.@.@@@..@@@@.@@@@.@@@@..@@@@@@@@..@..@.@.@.@@@.@.@@@@..@@@@.@
@@@.@@@@.@.@@@.@..@.@.@@..@@@.@.@.@@@@@@.@..@.@@.@...@@.@.@@...@@@...@@@.@@@@@..@.@@@.@@@@@@@@..@@@@@@@@.@@@@.@@@@@..@@.@@..@@.@@@@..@.@@.@
@@@@.@@@.@..@@@@.@@....@....@@@@@@@@@@@@.@@@.@@@@@.@@.@..@@..@.@..@..@@..@@@@@..@@.@@@@@@@@@@@..@@@@@.@.@@@@@@@@@@@..@@@@..@@@.@@..@...@@@@
@.@@@@..@@@@@.@......@@@@@@.@@@..@@@@..@@.@@@.@@@@@@.@@..@@.@@@@@@@@@@@@..@.@@@...@@@..@@.@.@@@@.@.@@@@.@.@..@@@.@..@@.@.@@@@@@.@@@@.@.@..@
@@@@@.@..@@.@..@@@@@.@@..@@@@...@@.@.@.@.@..@..@@.@@@..@...@@..@@@.@.@@..@@.@@.@@.@@.@.@@.@@.@.@@.@.....@@.@@..@......@@@@@.@@.@@@@@@@.@.@@
@@@@..@@@@.@.@......@@.@.@.@@..@.@@@@@...@@..@@..@@@@@@.@@@.@@..@..@@.@@@.@@@@.@@@@@@.@.@@.....@.@@@.@@@......@@@...@@..@@@..@.@@@.@@@@.@@@
.@.@@@.@.@...@@@.@@.@@@@@@@...@@@@@...@@@.@@.@@@@..@@.@@..@@@..@@@.@@@@@@@@@..@...@@..@.@@@@@@@@@.@@@@..@.@@..@@.@@@.@.@@.@.@@@@@...@.@@.@@
@.@.@@..@@.@.@@@@..@@@@.@.@@@@@@@@@@@..@@.@@.@@..@@..@.@@@@@@@.@..@@@@@.@@@@@.@@@@@@@@@@@..@.@@@@@@.@@@.@@@@.@@@@@@.@@@.@..@...@@@.@@@.@@.@
@.@@@.@@...@.@@@@@..@@..@@@@@..@@@@@@..@...@@@@@@@@@@@@@@@.@..@.@@@@@@..@@@...@@.@@@@.@.@@.@.@..@@@....@.@@.@@@@@@..@.@.@..@@..@@@@@.@@@.@@
.@@@@@@@.@@@..@......@@@@@@@@@@..@.@@.@@.@@@.@@.@@@@@@@.@@@@@.@@.@..@@@@@@@@..@@.@.@..@.@@@.@@@@@@@.@.@@.@@@....@@.@...@.@@@.@@@...@@@@@...
@.@@@@@.@@@@...@@@@@.@.@@@@.@@..@.@@@.@.@..@@@..@@@..@@@.@@.@@@@@.@@@@@@@@@@.@.@@@@..@@@.@..@.@@.@..@@@.@@@.@@@@@@@@.@@@..@.@.@...@@...@@@@
@.@.@@.@..@..@@@@@.@@@@@@.@@@.@..@.@@.@.@@.@@.@.@@..@@@@@@@@@@.@@...@@.@@..@@@.@@@.@@@@...@@@@@@.@@.@@.@.@@@@@@.@.@@@@.@..@.@@@@@.@@.@@@.@@
@@@....@@.@@@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@@..@.@..@@@....@.@@@.@@@.@.@.@@.@@.@@@...@@@@@@@.@@@@..@.@@@...@@@@..@..@@@.@@@..@@..@@@..@@.@@@@
..@.@..@@@@@@.@.@.@@.@@@@@@.@.@@..@@@@@@@@@@.@@@.@...@@@.....@@.@@.@.@.@@@@@@@.@..@.@@@@@@@.....@@..@@.@@@.@@@@...@.@.@@@.@@.@@@.@@.@@@..@@
@@@@.@....@@@@@@@@@@.@@...@@@@.@@.@@@@.@.@@@.@@@@..@@@.@@@.@..@.@@.@@@@.@.@@@@@.@..@@.@@@@@.@.@@..@....@@@@@@@@@@@@@@@..@@@@.@..@@@@@@@.@@.
.@@....@@@...@.@..@....@@.@@@@..@..@@@..@@@@.@@@..@@.@@@.@..@@@..@@@@@@@...@@@@...@.@@.@@@@.@.@@@@@.@...@@.@@@@@....@..@@@@@....@@@@@.@.@@@
@@.@@@.@@...@@.@.@..@@@..@@.@...@@@@..@@@.@..@....@@@..@@@.@@@@@@@@..@@@..@..@@.@@.@@@@....@@@..@..@@..@@@@.@.@.@@.@@@..@@.@..@@@@...@@@.@.
@.@.@@@@.@@@@@@@@..@@@@..@@..@@@.@@.@@@@@..@@@@@.@..@.@.@.@@@.@.@@.@.@.@@@.@@.@@@@@@@@..@@.@.@@@@@@@@@@.@@@@@@@.@@@@@.@@@@...@@@@@@@@..@@.@
@@@..@@@@.@.@@.@@..@..@.@@@@.@.@..@@..@.@.@@@@@@..@.....@..@@@@@@@@@.@@..@.@@.@.@@@@@.@@@@@@@@@......@@.@...@@@@@..@@@@@@@.@.@..@@.@@@@@@@@
@@..@@.@@@@@@@@.@@@@@.@@.@@..@@.@@.@@@@@@@@.@@.@.@@@...@@@@@@@@@.@@@.@@.@.@@.@@@@..@@@.@@@@@@@@...@@..@@@@@.@@@...@..@@..@@@..@.@@@@@@@.@..
@.@@..@@.@@..@...@.@@@@@.@.@..@.@@@@.@.@.@@@.@.@.@@@..@@@@@@@@@@.@...@@@...@@..@@@.@@@@..@@@.@@@@@@@@@@..@@.@.@@.@..@......@...@@@.@@@@.@.@
@@.@..@@.@.@@@.@....@@.@@@@@.@.@@@..@@@@.@@@.@....@.@@@..@@@@....@.@....@@.@.@@@@@@@@...@@@.@@@.@.@@@@..@@@@@@@@@..@@...@@@.@.@.@@@@.@.@@@@
@@@@.@@@@...@@@@.@@@.@@@@@@@@@..@@@@..@@@....@@.@.@@@..@@.@...@@...@@.@@@@.@.@@@@.@@@@.@.@@@@@@@.@.@@...@@@@.@@@.@@@@.@.@@@.@.@@..@@@.@...@
.@@.@@@@.@..@@@@@@@..@..@@@@@@.@..@...@@.@.@...@..@@@@@@.@@.@.@@@@@.@.@.@@..@.@@@@@@.@@..@@@.@@.@@@@@@.@@@@@@@@@@@@@@@@@@@@@.@@@@@.@...@@@.
@@..@..@..@@.@@@@@@@@@.@@@@@.@@@@.@@@@@@@..@..@@@.@@..@@.@...@@@@@..@@@@@.@..@@..@@@@@.@....@...@@@.@@@.@@@@@.@.@.@..@..@@@.@@@.@..@.@@@@@.
@@@..@@..@@@@@@@@.@@@..@@@@@@@@@@@@.@.@@.@.@@@@@..@.@@@@@.@@@@.@@@@@@@@@@@@..@@.@@@@..@@@.@@..@.@@@@.@@@@@@@@@@@@.@.@@.@..@.@.@@@..@.@.@@..
...@@@.@@@@...@@.@.@@@@.@@..@.@..@@@.@@@@@..@@@..@@@@..@.@.@@@@@.@.@@@@@@@@@@.@@@.@@@@@@@@@.@.@.@@@@.@@..@@......@@..@@@.@@.@@.@@@@@.@.@@@@
.@@@@...@....@@@...@@.@.@.@@@@@@@@@@.@.@..@@@@@@.@..@@@.@@@.@@.@@@@@@.@@...@.....@@@.@.@.@@@@@@..@@@@@@@@@.@@@.@...@..@@@@@.@@@...@@@.@@@.@
@@@@.@@@...@@@.@@@@.@@@@@@@@.@@@@@....@@@@@@@@@.@.@@@@@@.@..@@@.@.@@@..@@@@@..@@.@@@@...@@@@@@....@@@@@.@@@@@@@@.@.@@@@@@@.@.@@@.@@.@.@@..@
..@@..@@.@.@.@.....@.@@@@@@..@@@@.@@@@@.@@.@.@@@.@@@@@@@@.@@@@.@.@.@.@@@@@@@@@@...@@@@.@..@@@@@.@@.@@@.@@@@@@@@.@@@..@@@.@.....@.@..@@.@@.@
@.@@@.@@@@@@.@@@@@@@@.@.@@@@.@..@.@@...@..@.@@..@..@.@.@@@..@@.@.@.....@@....@@@..@@@.@@.@@@@@@..@.@@..@@@.@@@@@@@@.@@@@@@@@@@.@@..@@@@@@@.
.@@@@@.@.@.@...@@@.@.@@@@@.@@@.@@@..@.@...@@@@@@@.@@@@@@@@@.@@....@@@@@.@@@@..@@@@@@.@.@.@..@.@.@.@@.@@.@@@@.@@.@.@@.@.@@.@.@..@..@@.@@....
.@@@@@@....@.@@@@@@@@@@@@@@@..@@@@@.@.@.@.@@@@....@.@.@@.@@@@@@.@.@@@@@@@@..@..@@@..@@@.@@....@@@..@@@@...@@.@@@@@@.@.@@@@..@@@@@@.@...@.@@
@@@@@@@@.@@@@@.@..@@...@@@..@@.@@..@..@@@@.@.@..@@@@@@.@.@@.@@.@@@@@.@@..@..@@@@@.@@@.@@..@@@@@@..@@@.@.@@@@@@..@..@@@..@.@@.@@@.@.@@..@..@
@@.@@@@@.@@@@@@@@@@.@@.@..@@..@@@@...@@.@..@@....@@.@@.@.@@@..@.@@@@@@@@@@@@@@..@@@@@@@.@@.@@@@@..@.@@@@@@..@@@...@@@@@.@@@.@@.@.@...@@@@..
....@@@.@.@@@@@@@@@.@.@@.@...@@@@@@.@.@..@@.@...@@@@.@@@@.@@@.@.@@..@@@@@@.@@@@..@@@@@@@@@@.@.@.@@..@.@.@@.@@@.@@@@@@@..@@.@@@@@.@.@@@.@...
@@@@@@..@.@@@@@@@@@@@@@@..@@...@@@@@@@@@@@.@.@@@.@@@@@..@.@@..@..@@@@@.@@@@@.@@..@.@@@....@@@@.@@@@@@@..@.@@@@@@@@@@@@@@@.@@.@.@.@@@@.@@@@.
@...@@..@.@@@@.@@@..@.@@.@@.@@@.@@.@..@@@..@.@@@@@@.@@@..@@@.@@@@.@@.@.@@....@.@...@@@@@@@.@@@.@@@@.@@.@@.@@.@@@@.@....@@@@@@@@@..@.@@@@.@.
@@@..@@.@.@...@...@.@..@.@@@@.@@@.@.@@@...@@@@@@@...@.....@@@.@@@@@@@@@@@..@.@...@@.@@@@.@@.@@.@..@@@@.@@@@.@@@@@.@..@@@..@@@.@@...@@..@@@@
.@@@@@@@.@@@@.@@@@@.@@@.@@@@..@@@@@@@@@@@..@.@@@@..@@@@@@@@@..@@@.@@..@@@.@.@@@.@@@..@.@@@@@@@.@@@@@..@.@.@@@@@.@..@.@.@.@@....@@@@@@.@.@@@
@@@@.@@.@@.@@@.@@@.@@@@@@.@@@.@@@@@@.@@.@@..@@@@@@...@.@@@.@..@@@@...@..@.@@@@@.@.@.@@@@@@@@@@..@@@.@.@@@.@@@@....@.@@..@@.@@@@@@@@@..@@@.@
@.@.@@@@@.@@.@@@.@.@@@..@@.@@.@@@@@@@@..@@@@..@@...@.@.@@@....@.@..@@@@@@@@@@.@@....@.@@..@@@@@...@@@@@.@.@@@@..@@@.@..@@.@@.@.@@...@@@@@@@
@@.@@@@.@@@...@@@..@.@.@@@.@@@@@.@@@.@.@.@.@@...@@.@.@@@@.@..@@..@@.@@.@.@.@..@..@@@@.@.@@@@@.@.@..@@@@@@@.@@.@@@....@.@..@@..@@...@@@.@.@@
@@.@@.@@@@@@.@@.@..@..@...@@@.@@..@.@@@..@@.@.@.@@.@@@..@@@.@@..@@@@@@@..@.@@.@.@@@@.@.@.@@.@@@.@@@.@@.@@@@.@@@@@...@@@@@@@@@.@@@@@.@@..@..
@.@@@.@@@@@@@.@.@.@@@@@.@@@@@.@@@@@@@.@@.@.@.@@@@@@@@@@@...@..@@.@@.@@@@.@@@.@@@@...@@@@@@.@@@@@@@.@@@.@@@@@....@..@@@.@@..@.@@..@..@@.@@@@
@.@@@@@..@@@..@@@@...@@@.@@@...@@.@@..@..@@..@@.@@@..@@@@@@.@@@.@@...@.@.@..@.@@@@.@@..@.@@@@.@@.@@@@@.@@@@.@.@@.@.@@@@.@@.@.@..@...@@@@.@.
@@@..@.@.@......@..@...@...@.@@@@@@@@.@@.@@@.@@@.@..@.@@.@.@@.@.@@@.@.@@..@.@.@.@.@.@.@.@@@@@@@@.@.@@@@@@@@@@@@@@.@@@@@@@@..@@..@..@@@@@@.@
@@@@.@..@.@.....@@.@@.@@.@@..@@@@...@.@@@@@@.@@..@@@.@....@.@@.@....@....@@@.@@@@@@@..@@.@@..@.@@@.@@@@@.@.@@@@@.@.@@@@...@.@@@@@@@@@@@.@@@
.@.@..@.@@.@@@@@.@@@..@@@.@.@@@..@@@@@@@.@@@.@@.@@@..@@@@@.@.@.@@.@.@@@@.@..@@@.@@@...@@@@.@@@..@@.@....@.@@@@@..@@....@..@@@.@.@@.@.@.@@.@
..@.@@@@@@.@@@.@@@.@@@@@@@@@@@@@@@...@@.....@@@@@@@.@..@@@@@@@@....@@@@..@@.@@@@@.@@.@.@@@@@.@.@@@@.@@@@@@...@@@.@.@.@.@@@@.@@@.@..@.@@...@
@.@.@.@@.@@@@.@@@@@.@.@...@@@@..@@@@@...@..@@@@@@..@@.@@.@@@@...@@@@.@@@...@@.@@..@@.@.@@@@@@@@...@@@@@..@@.@.@@@.@@@..@@...@@@@@@@@@@.@@.@
@@..@@.@.@@@@@@@.@@@@..@.@@.......@@..@@@@@.@@@@..@@@@..@.@.@.@@.@@@.@@@@@.@@@.@@@@@@@.@@@@@@@@.@@@@.@@.@.@@...@..@@@@.@.@@@@.@@..@@@..@@@@
@@.....@.@.@@@@@.@@..@@@.@@@@.@..@@@@@...@@@.@.@@@.@.@@@@@@.@.@..@.@.@@.@.@@@@@@@@.@.@@@.@..@@.@.@..@.@@@@..@@@@@@@@..@@@@@...@@@@@.@@.@@@.
@@@@@@@@....@@@.@.@@.@@.@..@@@@@@......@@@.@.@.@..@@..@@@@@@@@@..@..@.@@.@@@@.@@@.@@..@@@@@@....@@.@....@@@@.@@@@.@@@@..@@@@@@@@@@@@@@@@..@
@@..@@@..@.@@@.@..@@@@.@.@..@@.@..@..@@.@@@@@...@@..@.@@@@@@@...@@.@@@.@@@@@@@.@@@.@@..@.@@..@.@.@...@.....@@@@@.@.@@.@.@@@.@..@@@@@@..@@@@
.@.@@@@.@....@@.@@......@@@@@@@..@@@@@@@.@.@...@@@@@@@@@@@.@..@@..@@..@@@@@.@@@..@@.@@@@@.@@.@@@.@@....@..@@@@@@@@..@.@@@..@@@@..@.@.....@@
.@.@..@@.@.@@@@@@.@@@@@...@@...@@.@@.@@@@@@@@@@...@.@.@.@@...@.@@..@.@@@@@@@@.@@@@@@@...@@...@@@@@@@@@@@@@...@@.@@@...@@@.@@@@@@@.@@.@@..@@
..@@.@@.@...@@@....@@....@@.@@@.@@..@..@@..@@@@.@.@@@@@.@@@@...@@@@@@@@@@.@.@...@.@@@@@.@@@@.@@@@@.@@@@@@.@@.@@@.@@@.@@@@@@..@@@@@@@@.@@@@.
@@@.@@@@@@@@..@..@@@.@@@.@@@.@@.@@..@..@.@..@....@@@@@..@@@..@.@@@@@@.@@.@@.@@@@...@.@@@@@.@.@@@@.@@@@@@@@@@.@@.@@@@@@@@.@@@@@@@@@.@@@..@.@
@@@.@.@@.@@....@@@@@..@.@@@...@.@....@@@@@.@.@@@@@@@@@...@@...@.@@@@@..@..@@@.@@@.@@...@.@.@@@....@.@..@@...@...@@.@@@@..@.@@@@@@@.@..@@@..
.@@@.@......@.@..@.@@....@.@@@.@@.@....@@..@.@@@.@@@@...@@.@@@@@.@@@..@@@@@@..@@.@.@@@.@...@@@@@.@..@@@@@@..@@..@.@@@.@..@@.@@.@@.@@.@.@@@@
@@.@@@@@@..@@.@.@@@@@.@@@@@@@.@.@..@@@@@.@@@...@.@@@@@@@@..@@@.@@@@@@.@..@@@@@..@....@...@@@.@@.@.@@@@@@@@.@@@@@.@..@@.@@@@.@@@@.@@..@.@..@
@.@..@@.@@@@.@.@@@@.@@@@@@@@.@@@@@.@@@@@@@@@@@.@@@@@@@.@@@@@@...@.@@@@.@@@@@...@@@@.@@..@@@@.@@.@..@..@@@.@.@@@@.@.......@@.@.@..@.@.@@@.@.
....@.@@@@@@@@@@.@@@.@..@@@.@@@@@.@@@@@..@@@@..@@@.@.@.@..@@.@@.@.@@@@@@.@.....@.@@@..@@@@@@@@..@@@@.@.@@@@@@..@@..@@@.@@.@@.@@@@.@.@@@@@@.
@@...@@.@.@@.@@@@@@@.@@@.@.@@..@.@@@@@.@.@...@@..@@@.@..@@@.@@@@@@@@@.@@@.@@@@@.@.@@@@@@.@.@@.@@@.@.@@@@..@@..@.@@@..@@@.@.@@@..@.@.@@@.@@@
@..@@@.@@@@@.@@.@@@@@@@@@@@.@@@..@@@@@@@@@.@@.@.@@@@..@@..@@.@.@@@@.@.@@@.@@@.@@.@@@...@@@@@...@...@@@@@..@@...@@@.@@@@@@@@..@@.@@.@@@@@@@@
.@.@.@@@..@@@.@@@.@@@@@@@@..@@@@@..@@@@@.@@@@@..@..@.@.@.@@@@@@@@@@@@@.@..@@@@@@@@@@.@.@.@@@@.@.@@@@@@@.@@@@@...@@...@@@@@@@@.@@.@@@@@@@@@@
@@@@.@@@@.@@@@@.@..@@.@@@@@...@@...@.@..@..@.@.@.@@..@..@@@@.@@@@@.@..@@@@@@@@@@@.@@.@@@.@@@@.@@...@@@@@@@@..@@.@.@@.@@@.@..@@@@@@@@@@....@
..@.@.@.@@....@@@@.@@@@@@@@.@@@@@.@@@@.@..@@@.@.@.@@.@@@@...@@@@..@.@...@@@@@@@@..@@@@@...@@...@.@..@@@@@.@@@@.@..@@.@@@@@@...@@.@@@.....@@
@@@@@@.@@.@@@..@.@@@@@....@.@@@@@.@..@.@@@@@@..@@.@...@@..@@@@@@.@.@@.@.@.@@...@...@@@..@@@@@@.@.@@@@@..@@@.@.@@@@@@@..@@.@@@@.@.@.@.@.@..@
@@@@@..@@.@@@..@@@....@@..@@@.@@...@.@@.@@@@..@@@@@@..@@@@@@@..@..@.@@.@.@..@@@@@@@...@.@@@.@@@@@@@@@@@@.@...@@.@.....@@@@.@.@@@@@@.@@@@@.@
.@.@@@..@.@.@@.@.@..@@@@@@.@.@@@@@.@@@.@@@@@@@@.@.@.@.@@@@..@..@@@@@@.@...@.@@@@....@.@@@@@@.@..@@@.@@.@..@.@.@.@..@@@.@@@.@..@...@@@.@@@@@
@@.@@@@@@@...@@.@.@@@.@@@@.@.@...@.@@@...@.@@@.@.@@..@@@@@.@@@@@@@@.@.@@..@.@...@@@@@...@@.@.@.@@@@...@@.@.@.@.@@@@@.@..@@..@.@..@@@..@..@@
@@@@@@@@..@.@@@.@.@...@...@@..@@.@@@...@....@@@.@@@.@.@.@..@.@@@@.@@.@@@.@.@@.@@@@@@...@.@.@@@.@.@@@@@.@@@@@..@@@@..@..@@@@@..@...@@@@@@.@@
.@@..@.@..@.@@.@@@@.@@@@.@@@@@.@.@@@@@.@@@...@.@@@.@@@....@..@@.@.@@@...@@@.@@...@.@@...@@..@..@@@.@@.@@@@@@@@..@.@@@@.@@@@@@..@@@.@@.@@@.@
@@@.@@@@@..@.@@@.@@@....@.@...@.@..@@@.@@.@@@@@@.@.@..@@@@.@@.@.....@..@@.@.@@@@..@@@@@@@@..@@.@@.@.@@@@@.@..@@@@.@@.@@@@.@.@@@@@.@@.....@@
@@@.@@@.@@@.@@@@@.@@..@@@@@.@.@@@@@@@.@.@.@@@@@@@@@@@@@.@@.@..@.@@.@@@@.@@@@.@@@@@@@..@@....@@.@.@@@@....@....@@.@@...@.@@@@.@.@@@@.@@@@@@@
@@@.....@@@@.@@@..@.@@.@.@@@@...@@@@@@@.@@@@@@@.@@.@@..@@@@@@@...@@@..@@@@..@..@@@.@@@.@.@@@@@.@@.@@.@..@....@.@@@.@@@@@.@@.@@...@@@.@.@..@
@@.@@.@@@....@.@@.@@.@@@@@@@@@@@@@..@..@..@@.@.@.@..@@.@@@@.@@.@@.@..@.@......@@.@..@@@.@@@.@@@.@@@@....@.@@@@.@@@@@@@..@@.@@@..@.@@..@...@
@@.@@.@@@@@..@..@...@@@.@.@.@@.@...@.@.@@@@@@@.@@.@..@.@...@..@@@@@.@@@@@@.@@.@.@@@.@@.@@@@@.@@@@.@.@.@@@@@@@@@.@.@@@@.@@@.@.@@.@@@.@.@@@@@
.@@@@.@@...@@@.@@.@@@@@.@@..@@.@.@@..@.@.@@@.@.@@@.@@.@.@.@..@@@.@.@@@@@@@..@@.@@.@@.....@@..@.@.@@@..@.@@@.@.@...@@@@@@@.@.@@@@.@@@@.@.@..
.@..@@@@.@@.@.@@@..@@@.@@@@@@@@@@@.@@..@@..@@@@@.@.@.@.@..@.@.@.@@@@@@@@@@@@.@@@..@.@...@.@@@.@..@@@@@@.@@@.@@@...@@@.@@@..@.@@.@@.@.@@.@@.
@@@@@@@.@.@.@@@@@.@..@@@@@@@...@@@@@@@.@@.@@@@@..@@@.@@@.@.@@.@@..@@@@@@@@@@@.@..@@@@..@@@@@.@@@@@@...@@@.@@.@.@.@@@@....@@.@@...@@.@.@@@@@
@@@.@@@@@@....@@..@@.@@@@@..@@@.@..@@.@@@@.@@.@@@@@@@@.@.@@.@@@.@@@@@...@@@@@@.@.@.@@.@@@@@.@..@@..@@.@@@@.@@@@@.@@@@@@@..@.@@....@@.@@.@@@
@@@@@@@.@@@.@@@@@@@..@@..@.@@@@.@@...@@..@@@@@.@@..@@@.@.@@@..@.@@@@@@.@@@@@.@.@.@@@..@@.@@.@@@...@@...@@.@@@@@..@@@.@..@@....@@@..@@@@.@..
.@@..@.@.@@..@..@@@.@@...@@...@@.@.@@@@@@.@.@@.@@@@@@@@.@@.@@@@..@..@.@..@@@..@@@@....@.@.@@@@@..@.@@@@@@@@@.@@.@.@@.@@.@@@.@@@.@@@@.@@@@@@
@@@......@@@.....@@@..@.@@@...@.@@@@@@@.@.@@@@@.@.@@@@@..@.@@@.@@.@@@@@@@@@.@.@@@.@@@.@.@@@@..@@@@..@@@@.@.@..@...@@...@..@@@.@....@@.@@.@.
@@@.@@@@@@@@@@@....@..@@@.@...@@@@@@@.@@@@.@.@@..@@...@@@@@.@@@@@...@..@.@.@@@..@@@@@.@.@.@.@@@.@@@..@.@@@@@@.@@@@@@.@@@@@@@@@@.@@.@..@@@@.
.@@@.@.@.@.@@@@@....@.@@..@@@@..@.@@@@@@.@.@@@@@.@@@..@@@.@.@@@.@@..@@..@.@.@@@@.@@@@.@.@..@..@.@@@.@.@@@@@.@.@@@.@@..@@@@@@@.@@@@..@@@@..@
@@.@@@..@.@.@.@@@@.@@@@@.@@...@.@@@@@@..@@@@.@.@@@@.@@@@@@@@@.@.@@...@.@@@..@.@.@@@@@@@.@.@@.@@@.@@.@@...@...@.@@@..@.@.@..@.@@@@@@@@.@@@@.
@@@@@@@@.@..@@@@@@@.@.@@@@@@..@.@@@@@@@..@..@@@@@@@@@@@@@@@@@@.@@@@@@@.@@@@@@@@@@.@@@@@@@.@.@@@.@.@@@@@..@.@@@@@...@@.@@@@..@@@@..@@@.@@@@.
.@@@@@.@@@@@.@.@@@@@@@..@@@@@@@@@.@@@@.@@.@...@@.@@@@@@.@@@@.@@@@@@.@@@@@@...@@@..@@@@..@.@.@.@@@@@@@@@@.@.@@@@@@@@@..@@.@@@@.@...@@@@@.@.@
@@@@.@@@.@@@@@@...@@..@.@...@@@.@@.@.@.@....@@@...@@....@@....@.@@@@@@@...@...@@@@@@@@@@@@@@@@@...@@@@@@@@@.@.@@@.@@@@@@@@@@@@@@.@@@@@@@.@.
@@@@@@.@@@.@@@..@@@.@.@.@@.@@.@..@@@.@@..@@.@@@@.@.@.@@@@@.@.@@........@@.@@.@@.@@..@.@@.@.@..@@@.@@....@@@@.@.@@@..@..@.@@..@@@.@@@.@.@@@.
..@@.@@@@@@.@@@..@@@.@.@@@@.@.@@.@@@.@.@@@@.@.@.@.@@.@..@@@@@......@.@@@@.@@@.@@.@@@@@@.@@@@.@@...@@.@.@@.@@.@.@@.@@.@@.@@.@@@@@@@.@@@@@.@@
@..@...@.@@@@@@@@...@@@@@@..@@....@..@@@@.@.@.@@@@@@@..@..@@@@.@@.....@..@.@..@@.@..@@@..@.@@@@@.@@@..@@@@@@@@.@@@@@@.....@@.@@.@@.@@..@..@
@@@@.@.@@@..@.@@@..@@@@@@@@.@@....@..@@..@@.@.@.@@.@@.@@@@.@.@.@@..@@.@..@..@@@..@@...@.@@@@@@@.@@.@@@@.@@@@.@@@..@..@.@@.@@@@@.@@.@@@...@@
.@@@.@@.@.@..@.@@..@....@@@@@@.@@.@@.@.@@.@.@@@..@@.@..@.@..@@@@@..@@..@@@.@..@@@...@.@@@@@..@.@..@@...@@.@@..@.@@@@@...@@.@.@.@@.@@@@@@@@@
@.@@@@@.@@..@@.@.@@@@@@@.@@.@@@@@@@@@@...@@@@.@..@.@@@..@.@@@@@@@.@@.@@...@.@@@@..@@@@.@@.@@.@@@@@.@.@.@.....@@.@@..@@@@@@@@..@.@.@@@@.@@@.
@@.@@@@.@@@.@@@.@@.@@@@@@@..@@..@.@..@...@@@.@@@@@@@@@@@@.@@.@@.@@..@@@.@@@.@...@@.@@@@@@@@.@.@@@...@@..@.@.@@@@@@.@@@...@@@..@.@..@.@@.@@@
.@@.@@@@@@@@@...@@.@@@@@@@@..@...@.@@@.@@.@@@@@@@@@.@@@@@@@@@@@@.@@@@@.@..@.@.@@@...@@.@.@@....@@..@@@@@@.@@@.@@@.@@@..@@@@@@.@@.@.@@..@.@@
@.@..@@..@@@.@..@@@.@@.@..@@..@...@@.@.@@@.@@@....@.@@@@@@.@.@.@.@.@@@.@@.@@@@@@..@.@@@@@.@@@@@.@.@@@.@@@@@..@.@.@.@@@@@.@@@@@@@@@@@.@@..@@
.@@@..@@@@@@@@@@@@@.@..@@.@.@@@@@@@@@.@.@@.@@@@@@@@@@.@@@@..@@@.@@@@@.@@@@@..@.@@...@@@@@@@....@@.@@@@@.@@@@.@@@@..@@@@@@@.@.....@.@@@.@@..
@@@@@@@@@.@@@@..@@@@.....@.@@@@@.@.@@@@@@.@@@.@..@@@...@@@@@@@@@@@.@@@...@@@@.@@@@@@.@@..@@.@...@@@@@@@..@@@@@.@.@@@@@@@@@.@..@@@.@@@@@@@..
@@@...@@.@@...@@@.@@.@@@@@@.@@@.@@....@.@.@@@..@.@@@.@.@@..@@@.@@.@@@@.@@@.@.@.@@@..@@@..@@@@@@@@@..@@@.@.@..@.@@.@@@...@.@@@@@.@@..@@@@@.@
@@.@@...@@@.@@@.@@.@.@@@@@.@@@@@.@..@@@@.@@.@@@@@.@@.@@@@@@@.@.@@@..@@@@@@...@@@@@.@.@@@.@....@@@@@@@@@@@@@.@@.@..@@@@@@@@@@@@.@@@.@.@.@@.@
@.@.@@@.@.@.@@@@@@@@@@.@@.@@@@....@..@@..@@@.@.@.@.@.@.@@@@..@@.@@@@@..@@@.@@@.@@@@@@@@@@.@@@@@@@@...@@@@@@@@@.@@@.@@.@@.@...@@@.@@@@.@...@
..@@@@@@...@.@@@@@@@@...@...@@@.@@.@..@.@.@@@.@.@@..@@@.@.@.@.@@@@@@@@@@@.@@@@@@@.@.@@@@.@..@@@.@..@.@@..@...@@..@@@..@@..@.@@@@.@.@@..@@@@
@@.@@@@@@@.@@.@..@@@@..@@@@@@@@@@@@@...@@@...@@.@@@@@@@@@@@@@.@@@.@..@..@.@@@@@@.@@@@@.@.@@@@@@@.@.@@@@.@.@..@@@@.@@.@@.@@@@.@.@.@@@@@..@.@
@@@@@@.@.@...@.@@@@@@...@@@@@@@@.@@@@@@..@@@..@@@@@.@@@@@.@@@.@@.@@@@@.@@.@@@@@@@@@@..@..@@@@@@.@@@@.@...@@.@@@.@@.@...@@@@@@.@@@.@.@..@.@@
.@@@@@...@.@...@@.@.@..@.@...@@@.@@@@@@@..@@@@@@..@.@@@@@@@@@..@@@@@@@@@@@..@@@@@@@@.@.@@@@..@@@@@@@...@..@@.@.@.@.@..@.@@@@@@@@..@@@@@@..@
@@@@@@....@..@@.@@..@@@@.@@@@@@@.@@.@@..@@@@@@@.@.@@.@@.....@.@@@@@@..@.@@..@..@..@@@@@.@@.@@@@@@.@@@.@@@.@.@@@.@@@.@@.@@@@.@...@@@@@..@.@.
@@@..@.@.@@@.@@@@@@.@.@@@@@@..@@.@@.@@@@....@@@.@@@.@.@.@@@@@..@@@.@@@@..@@.@.....@@..@.@@@.@.@@@.@@@@@@.@@..@@.@..@@.@@@@@@@.@@@...@@@@@@@
...@@@@@@@@.....@.@@.@..@@..@@.@.@.@.@@..@@@@@@@@@...@@@@@@..@@..@@@.@@@@@@@....@.@@.@@@@@@.@@@@@.@@@@@@@@@@@@@.@.@@@@@@..@.@@@@@@..@@@@@@.
@@@@.@@@@@.@@@..@@.@@@@@.@@@.@@@...@@@.@.@.@@.@@@@.@.@@@@.@@@@..@.@@.@...@@@@@@@@@.@@@@...@.@.@@@.@@@..@@.@..@.@.@@..@@.....@@@@.@.@@.@@.@@
..@@......@@.@@@.@@..@@@@@..@@..@@.@@@@@@@@@@.@.@@@.@@@@....@@@@..@..@@..@@@...@@.@.@@@@...@@@@@@@...@@@@.@.@.@@@...@@@.@@@@@.@@@.@@....@.@
@.@@.@@..@@@@@@.@.@.@.@@@@@@..@..@@.@@.@@..@.@.@.@..@..@.@@@@..@@@@.@@@@@.@@.@.@@@.@@.@@.@..@@...@@.@.@@@.@@@@.@@@@.@@@@..@.@...@@@@@@@@@@.
.@@..@@.@@@.@..@@@@....@@@..@..@@@.@@@@@@@@@.@@@.@@@@@@..@@@@@@@@@..@@@..@.@@.@@@@....@@@@@..@@.@@@..@@@.@@@@.@.@.@@@@@@@..@..@@@@...@@@@@@
@.@@@@.@@@@@.@.@.@@.@@@.@@.@.@.@@..@.@..@@@@@.@@..@@.@@@@@@.@..@@@...@.@..@..@@@@...@@@@.@@@@@@@..@..@@@.@@.@@@@.@..@@..@@@@@..@.@@@@@@.@.@
@@@@@@@.@@@@..@@@@@@@@.@@@@@@@@@@@@@@@@.@.@..@@...@@.@@.@@@.@@@@..@.@@@@.@.@.@@@@@....@.@@@..@@@@..@@@@.@@@@@@@@...@@..@.@.@@@@@@@@@@...@.@
@@@@@.@.@@@..@@@@..@..@@...@@@.@@.@@@.@@.@@@.@.@@@@@..@..@.@...@@@@@.@@@@@@@@@.@.@@@@@@.@@.....@@@..@@@.@@@@@.@.@@@.@..@.@.@.@@@@.@@@..@@@@
.@@@@@@@.@@.@@@@@@.@@...@@@@.@@@@.@@.@@@@.@.@....@.@.@@@@@@.@..@.@@@@@@@@@...@@.@.@......@.@@..@...@@@@@@.@.@@@@..@@@.@.@@@....@@@.@.@@@@@.
..@@@@@@@@.@@.@@.@.@.@@@@..@..@@.@...@@@.@@@@@@.@..@..@@.......@@.@@@@@@@@@@@.@....@...@..@.@@@....@.@.@.@.@@@@@.@.@@@@@.@@@@@@@@...@@@@.@.
@.@@@.@.@@.@@..@@@...@@.@@.@...@@@...@@@@@..@.@@..@...@@@.@@@@@.@@@@@@@.@@@@.@@@.@@@.@.@@@..@@@@@.....@@@@@@@..@@@.@.@@.@.@..@...@@@@@@@@.@
@@@..@.@@@.@.@@..@@@@...@@.@.@@@.@@@@...@@..@@@@@@.@..@...@@@@..@@..@@@@@......@.@@@@@@@.@@@@.@@@.@@@.@@@@@@@@@@@.@.@@@@...@.@@..@@@@@@@@@@
@@@@@@@@@@@.@@@@@@@@@@@@@@.@.@..@@.@@@@.@.@.@@@..@@@@@.@@@@.@@@...@@@.@..@@@..@.@@@@@.@@..@@.@@@@@...@@@@.@..@..@.@.@@@@@@@@.@@@.@.@@@@@..@
@.@.@@@@@.@.@@@.@@@...@.@.@.@.@@@.@.@@.@@@...@@@@@..@.@@@@.@@@@@.@.@.@@@..@.@.@@.@.@.@@@@..@.@.@@@@@@@.@@@..@@@.@@.@..@@@.@.@@@@@@@.@..@@.@
..@...@@@@@.@..@@@..@.@@@@@.@.@@.@.@@@@.@.@.....@@.@@@.@@@@@@@@..@@@..@.@..@.@@@@@@..@@.@@..@..@@@..@@@.@..@@...@@.@.@@@@@.@.@@@@.@.@@@@@.@
.@@@@@@..@@@@..@@@..@@@@@@.@@@@.@.@@@@..@@@@@.@@@@...@@.@@@...@@@@..@@.@..@@@@@..@...@@@@@..@@@.@@@@@@.@@@@@@@@..@@.@@@@.@.@..@@.@.@@@.@@.@
.@.@@.@@@@.@.@@@..@@.@.@@..@.@@@@...@@...@.@@@@@.@@.@.@@.@.@...@..@..@@..@...@....@.@@..@@@@.@.@.@.@@@@@@..@@.@@@@@@@.@@.@.@.@@.@@@..@..@.@
...@.@@@@..@@@@.@...@..@.@@@.@@@@.@@@@@@@.@@@@@@@@@@@@.@@@.@@.@@.@@@.@@..@..@.@@@@@.@@@@@@@@@.@@@@.@@@@@@@.@@@@@@..@@@@@@@.@..@@.@...@@@@@@

View File

@@ -0,0 +1,10 @@
..@@.@@@@.
@@@.@.@.@@
@@@@@.@.@@
@.@@@@..@.
@@.@@@@.@@
.@@@@@@@.@
.@.@.@.@@@
@.@@@.@@@@
.@@@@@@@@.
@.@.@@@.@.

1191
2025/inputs/05_1.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
3-5
10-14
16-20
12-18
1
5
8
11
17
32

View File

@@ -0,0 +1 @@
# Advent of Code