Compare commits

..

No commits in common. "40248e82e93c2ec8c965dc931e4b2b76bcdd7783" and "3070407092f773d264329fe663b7ef1735a59eb5" have entirely different histories.

5 changed files with 8 additions and 138 deletions

View File

@ -1,5 +0,0 @@
RUDULRLLUULRURDDRRUDURULLLDRLRLUDDLUDUDDUDRRDUDULDUUULLRULLRLDDLDLDDRLRRRRUDLLDDUULDRLLUDDRRUURLULRRRDLLURRUUDURUDDURLUDDDLUDDUUDUURUDLRDRDRLRDRLDRUDRUUDLRDDRRURDDLRDDRRURDUDDLULLUDRURURRRLRRUDUULULULRRLDLUDUURRLLRUDLLDRDDLRRRULRUDLULDDLLLULDLRUDLLLLRDDLRDRLDRLLRDRRDLRDULULRLLLDRUDRRRUULRUULDRURLUDRURRDLLDLRDLDDDDRRLUDLRRLUUUURDRDDLRRURURRDUULLRLURLURUDDDRDURDUUDRLRLRRLDDLDLDLDDDUDDULURLDDLLRLRRDULUDDLULRLUDDLDLRULUUUDRLDRUDURLUDDRLLRUULDLRRRRDLLLLURULLRDRRUDLUULRRDLLRLRLUDLDDULLDLLRDLDLL
LLUUUUUUDUDRLRDRDLDURRRLLRRLRURLLUURRLLUDUDLULUURUUURDLUDLDDLULLRDLRUULDLRDUDURLLDDUDUDULLUDDUULLLUULRRRLULRURRDLRUDUDDURRRDRUURDURLLULLRULLDRUULLURLDRDUUDDDDDDRRLDRLRRRLULDDUURRLLLLDRURLURDRDRDURUDUURRDUDUDRLLUUDDRLUDDDRDLDLRLDRURRDLLRULDRLLURURRLUULLRLRRURDDRDRUUURUURUUUDLLRRLUDRLDLRLURLDLUDDUDDDLDUDRRLDLRURULRLLRDUULURRRULDLLLRLDDDUURRRRDULLRURRLULULDLRRUDUDDLRUURDLDUDDUDRRDLRRRDUDUUUDLLDDDDLURLURRRUUULLLULRRLLLLLLULDUUDLRUDRRDLRDUUDUDLLRLDLLRUURDUUURUUUDDLLUUDLULDURLULULUUUDRUDULLURRULRULLRDLDDU
RLUUURULLDLRLDUDRDURRDUURLLUDDDUULRRRLRLURDDRUULUDULDUUDDDDUDDDDRUDDLDUUDRUDLRRRLLRDDLLLRLLRUULRUULDDRURRLURRLRLULDDRRRDDURDDRDRDULRUDRUUDULRLLULDLRLLDRULRDDRRDDUDLRLLUDRDRRRLUDULRDLRDDURRUUDDRRUDURRUUUDDRRDUDURLUUDUDUURDDDLURLULLUULULURUDUUDRUDULLUUULURDLDUULLDDLLDULRLRLRDUUURUUDLRLDURUDRLDULLUDLDLLRDUURRDUDURLUUUDLLRRULRLULRLDLLURDURRULRLLRRDUDLLRDRRRRDLUUDRUUUDDLRLUDDDDDDRURRRUUURRDLLRURLDDLLDLRRLLLDRRULRRUDLDRDDRRLULURLLUURURURRRRUUUUURUDURLRLLLULULDLLDLRDRRULUDUDRDRRDRDRRDUDLLLRUDRUDDDULRULRRRDRLRUUUURUDURDUUULLULRUDDULDUUDLDURRD
ULRULDDLDLULLLRRRLRUDDDDDLLDDUDLRRDULUUDRDLRRURDRRLUULRURUDRRULDLLLUDRUUDULULUDDRUDDDRDURRRDRDUUURLRDULUDRDRLDRUDDLLLDRRULUDLUDLDLLRRUDUULULDLDLLUURDLDDLLUUDURLURLLLDRDLDRRLRULUURRDRULRUUURULRRUDDDDLLDLDDLLRRLRRRRDUUDUDLDRDRRURDLRURULDLRDLLLLRUDRLLRDLRLRDURDRUDURRRLRDRDLLRLUDDDDRLRLLDUURRURLUURUULUDLUURDRRUDDLUDUDDDURRDRUDRLRULDULUUUUUUDDUDRUDUUURUDRRDLUDLUUDUULUDURDLDDDLLURRURUUDUDDRRDRLLULULDRLRURRDDDRDUUURDDDRULUDRDDLDURRLDDDLRRRLDDRDURULDLUDLLLURLURRLRRULDLLDDUDRRULDRRRRLURRUULRRRUDLURDLLDLLDULUUDRRLDLLLDRLRUDLUULDLDRUDUDURDRUDRDDDLRLULLUR
LRLUUURRLRRRRRUURRLLULRLULLDLUDLUDRDDRLDLRLULLURDURLURDLLRLDUUDDURRRRLDLLRULLRLDLLUUDRLDDLLDRULDRLLRURDLRURRUDLULLRURDLURRURUDULLDRLLUUULUDRURRUUDUDULUUULRLDDULDRDLUDDUDDDLRURULLDLLLRLLUURDLRUDLLLLDLLRLRUUUDDRUUUUDLDLRDDURLDURUULLLUUDLLLLDULRRRLLDLDRRDRLUDRUDURLLUDLRLLUDUDRDDDRDLRDLRULUULDRLUDLRLDUURLRRLUDDDUUDDDUDRLDLDUDLURUULLDDDURUUULRLUDLDURUUDRDRURUDDUURDUUUDLLDLDLDURUURLLLLRURUURURULRULLRUDLRRUUUUUDRRLLRDDUURDRDRDDDUDRLURDRRRUDLLLDURDLUUDLLUDDULUUDLDUUULLDRDLRURUURRDURRDLURRRRLLUUULRDULDDLDUURRDLDLLULRRLLUDLDUDLUUL

View File

@ -1,5 +1,5 @@
pub mod d1;
pub mod d2;
// pub mod d2;
// pub mod d3;
// pub mod d4;
// pub mod d5;

View File

@ -1,108 +0,0 @@
use crate::prelude::*;
pub type I = Vec<Vec<(i8, i8)>>;
pub type O = String;
fn _parse (data: &str) -> I {
data.trim().lines().map(|line| line.trim().chars().map(|c| match c {
'L' => (-1, 0),
'U' => (0, -1),
'R' => (1, 0),
'D' => (0, 1),
_ => unreachable!()
}).collect()).collect()
}
fn _solve (data: &I) -> O {
Default::default()
}
fn _silver (data: &I) -> O {
let mut out = format!("");
let mut x = 1;
let mut y = 1;
let r = 0..=2;
for n in data {
for (dx, dy) in n {
let nx = x + dx;
let ny = y + dy;
if r.contains(&nx) && r.contains(&ny) {
x = nx;
y = ny;
}
}
out.push(((y * 3 + x) as u8 + b'1') as char);
}
out
}
fn _gold (data: &I) -> O {
let mut out = format!("");
let mut x = 2;
let mut y = 2;
let m = M::from([
((0, 2), '1'),
((1, 1), '2'),
((1, 2), '3'),
((1, 3), '4'),
((2, 0), '5'),
((2, 1), '6'),
((2, 2), '7'),
((2, 3), '8'),
((2, 4), '9'),
((3, 1), 'A'),
((3, 2), 'B'),
((3, 3), 'C'),
((4, 2), 'D'),
]);
for n in data {
for (dx, dy) in n {
let nx = x + dx;
let ny = y + dy;
if m.contains_key(&(ny, nx)) {
x = nx;
y = ny;
}
}
out.push(*m.get(&(y, x)).unwrap());
}
out
}
#[cfg(test)]
mod test {
use super::*;
fn read () -> I {
let data = inc!(2);
_parse(data)
}
#[test]
fn silver () {
let data = read();
let ans = _silver(&data);
assert_eq!(ans, s!(74921))
}
#[test]
fn gold () {
let data = read();
let ans = _gold(&data);
assert_eq!(ans, s!("A6B35"))
}
}

View File

@ -3,20 +3,16 @@ use crate::prelude::*;
pub type I = String;
pub type O = i64;
fn _parse (data: &str) -> I {
Default::default()
fn solve (data: I) -> O {
0
}
fn _solve (data: I) -> O {
Default::default()
fn silver (data: I) -> O {
0
}
fn _silver (data: I) -> O {
Default::default()
}
fn _gold (data: I) -> O {
Default::default()
fn gold (data: I) -> O {
0
}
#[cfg(test)]
@ -24,23 +20,16 @@ mod test {
use super::*;
fn read () -> I {
let data = inc!(_);
_parse(data)
Default::default()
}
#[test]
fn silver () {
let data = read();
let ans = _silver(&data);
assert_eq!(ans, 1)
}
#[test]
fn gold () {
let data = read();
let ans = _gold(&data);
assert_eq!(ans, 1)
}
}

View File

@ -3,9 +3,3 @@ pub macro inc {
include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/in/", $d, ".txt"))
}
}
pub macro s {
($s: literal) => {
format!("{}", $s)
}
}