feat: implement day03
This commit is contained in:
parent
1802867d05
commit
e6d7480e7d
47
src/day02.rs
47
src/day02.rs
@ -26,7 +26,7 @@ Paper (Y) -> 2
|
|||||||
Scissors (Z) -> 3
|
Scissors (Z) -> 3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone)]
|
||||||
enum Move {
|
enum Move {
|
||||||
Rock,
|
Rock,
|
||||||
Paper,
|
Paper,
|
||||||
@ -39,7 +39,7 @@ pub fn execute_task01(content: &str) {
|
|||||||
let opp_char: char = line.chars().nth(0).unwrap();
|
let opp_char: char = line.chars().nth(0).unwrap();
|
||||||
let you_char: char = line.chars().nth(2).unwrap();
|
let you_char: char = line.chars().nth(2).unwrap();
|
||||||
|
|
||||||
calculate_score_from_game(convert_to_move(opp_char), convert_to_move(you_char))
|
calculate_score_from_game(&convert_to_move(opp_char), &convert_to_move(you_char))
|
||||||
}).sum();
|
}).sum();
|
||||||
|
|
||||||
println!("Day02 - Task01 - Score: {}", score);
|
println!("Day02 - Task01 - Score: {}", score);
|
||||||
@ -54,21 +54,23 @@ pub fn execute_task02(content: &str) {
|
|||||||
let you_char: char = line.chars().nth(2).unwrap();
|
let you_char: char = line.chars().nth(2).unwrap();
|
||||||
let opp_move: Move = convert_to_move(opp_char);
|
let opp_move: Move = convert_to_move(opp_char);
|
||||||
|
|
||||||
calculate_score_from_game(opp_move, convert_to_conditional_move(opp_move ,you_char))
|
calculate_score_from_game(&opp_move, &convert_to_conditional_move(&opp_move ,you_char))
|
||||||
}).sum();
|
}).sum();
|
||||||
|
|
||||||
println!("Day02 - Task01 - Score: {}", score);
|
println!("Day02 - Task01 - Score: {}", score);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn convert_to_conditional_move(opp: Move, you: char) -> Move {
|
fn convert_to_conditional_move(opp: &Move, you: char) -> Move {
|
||||||
match you {
|
match you {
|
||||||
'X' => match opp { // need to loose
|
'X' => match opp { // need to loose
|
||||||
Rock => Scissors,
|
Rock => Scissors,
|
||||||
Paper => Rock,
|
Paper => Rock,
|
||||||
Scissors => Paper,
|
Scissors => Paper,
|
||||||
},
|
},
|
||||||
'Y' => opp, // need to draw
|
'Y' =>
|
||||||
|
|
||||||
|
opp.clone(), // need to draw
|
||||||
'Z' => match opp { // need to win
|
'Z' => match opp { // need to win
|
||||||
Rock => Paper,
|
Rock => Paper,
|
||||||
Paper => Scissors,
|
Paper => Scissors,
|
||||||
@ -87,29 +89,16 @@ fn convert_to_move(c: char) -> Move {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn calculate_score_from_game(opp: Move, you: Move) -> i32 {
|
fn calculate_score_from_game(opp: &Move, you: &Move) -> i32 {
|
||||||
match opp {
|
match (opp, you) {
|
||||||
Rock => { // Opp == Rock
|
(Rock, Rock) => 3 + 1, // You Draw with Rock
|
||||||
match you {
|
(Rock, Paper) => 6 + 2, // You Win with Paper
|
||||||
Rock => 3 + 1, // You Draw with Rock
|
(Rock, Scissors) => 0 + 3, // You Lose with Scissors
|
||||||
Paper => 6 + 2, // You Win with Paper
|
(Paper, Rock) => 0 + 1, // You Lose with Rock
|
||||||
Scissors => 0 + 3, // You Lose with Scissors
|
(Paper, Paper) => 3 + 2, // You Draw with Paper
|
||||||
}
|
(Paper, Scissors) => 6 + 3, // You Win with Scissors
|
||||||
},
|
(Scissors, Rock) => 6 + 1, // You Win with Rock
|
||||||
Paper => { // Opp == Paper
|
(Scissors, Paper) => 0 + 2, // You Lose with Paper
|
||||||
match you {
|
(Scissors, Scissors) => 3 + 3, // You Draw with Scissors
|
||||||
Rock => 0 + 1, // You Lose with Rock
|
|
||||||
Paper => 3 + 2, // You Draw with Paper
|
|
||||||
Scissors => 6 + 3, // You Win with Scissors
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Scissors => { // Opp == Scissors
|
|
||||||
match you {
|
|
||||||
Rock => 6 + 1, // You Win with Rock
|
|
||||||
Paper => 0 + 2, // You Lose with Paper
|
|
||||||
Scissors => 3 + 3, // You Draw with Scissors
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
87
src/day03.rs
Normal file
87
src/day03.rs
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
use crate::utils;
|
||||||
|
|
||||||
|
pub fn execute_task01(content: &str) {
|
||||||
|
let vector = utils::convert_to_string_slice(&content);
|
||||||
|
let rucksack_compartments: Vec<(Vec<char>, Vec<char>)> = vector.iter().map(|line| split_rucksack_in_two_compartments(line)).collect();
|
||||||
|
|
||||||
|
let duplicates: Vec<char> = rucksack_compartments.iter()
|
||||||
|
.flat_map(|(vec1, vec2)| vec1.iter()
|
||||||
|
.copied()
|
||||||
|
.flat_map(|entry| vec2.iter().copied().map(move |b| (entry, b)))
|
||||||
|
.filter(|(a, b)| a == b)
|
||||||
|
.map(|(a, _)| a))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let sum: i32 = duplicates.iter().copied().map(|c| convert_char_to_prio(&c)).sum();
|
||||||
|
|
||||||
|
println!("Day03 - Task01 - Sum of Priorities: {}", sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn execute_task02(content: &str) {
|
||||||
|
let vector = utils::convert_to_string_slice(&content);
|
||||||
|
let compartments: Vec<Vec<char>> = vector.iter().map(|line| split_rucksack_in_items(line)).collect();
|
||||||
|
let mut duplicates: Vec<char> = vec![];
|
||||||
|
|
||||||
|
for i in 0..(compartments.len()/3) {
|
||||||
|
let first_index = i * 3 + 0;
|
||||||
|
let second_index = i * 3 + 1;
|
||||||
|
let third_index = i * 3 + 2;
|
||||||
|
|
||||||
|
let first_vec = compartments.get(first_index).expect("ERR");
|
||||||
|
let second_vec = compartments.get(second_index).expect("ERR");
|
||||||
|
let third_vec = compartments.get(third_index).expect("ERR");
|
||||||
|
|
||||||
|
let mut dups: Vec<char> = first_vec.into_iter()
|
||||||
|
.copied()
|
||||||
|
.flat_map(|val1| second_vec.into_iter()
|
||||||
|
.copied()
|
||||||
|
.flat_map(move |val2| third_vec.into_iter().copied().map(move |val3| (val1, val2, val3))))
|
||||||
|
.filter(|(a, b, c)| a == b && b == c)
|
||||||
|
.map(|(a, _, _)| a)
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
duplicates.append(&mut dups)
|
||||||
|
}
|
||||||
|
|
||||||
|
let sum: i32 = duplicates.iter().copied().map(|c| convert_char_to_prio(&c)).sum();
|
||||||
|
|
||||||
|
println!("Day03 - Task02 - Sum of Groups of Priorities: {}", sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn split_rucksack_in_two_compartments(rucksack_content: &str) -> (Vec<char>, Vec<char>) {
|
||||||
|
let first_compartment: &str = &rucksack_content[..rucksack_content.len()/2];
|
||||||
|
let second_compartment: &str = &rucksack_content[rucksack_content.len()/2..];
|
||||||
|
|
||||||
|
let mut first_compartment_vec: Vec<char> = first_compartment.chars().map(|c| c).collect();
|
||||||
|
let mut second_compartment_vec: Vec<char> = second_compartment.chars().map(|c| c).collect();
|
||||||
|
|
||||||
|
first_compartment_vec.sort();
|
||||||
|
first_compartment_vec.dedup();
|
||||||
|
second_compartment_vec.sort();
|
||||||
|
second_compartment_vec.dedup();
|
||||||
|
|
||||||
|
return ( first_compartment_vec, second_compartment_vec);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn split_rucksack_in_items(rucksack_content: &str) -> Vec<char> {
|
||||||
|
let mut vec: Vec<char> = rucksack_content.chars().map(|c| c).collect();
|
||||||
|
|
||||||
|
vec.sort();
|
||||||
|
vec.dedup();
|
||||||
|
|
||||||
|
return vec;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn convert_char_to_prio(c: &char) -> i32 {
|
||||||
|
let c_code = c.clone() as u8;
|
||||||
|
|
||||||
|
if 65 <= c_code && c_code < 91 {
|
||||||
|
return (c_code - 64 + 26) as i32;
|
||||||
|
}
|
||||||
|
|
||||||
|
if 97 <= c_code && c_code < 123 {
|
||||||
|
return (c_code - 96) as i32;
|
||||||
|
}
|
||||||
|
|
||||||
|
panic!("never should called");
|
||||||
|
}
|
300
src/input/day03/input01
Normal file
300
src/input/day03/input01
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
jLnFTjhwFTLFDGDDvLgvDssBJBbVRNZJPPJBGzBNRVJNRB
|
||||||
|
QWmffSmMZCfWrmHlCflQWfSNBpVBNbPSbbJNppcVVzzpcp
|
||||||
|
lflrqrWMmfdMlrtWWmZgDjsqwFwhFDsngnvhqs
|
||||||
|
CNBGwsWVsdWDNCCVvfPLfQfgZHPBvpgf
|
||||||
|
qhJqJlmcFnhJclllPgZjvpHpvfZpPbLn
|
||||||
|
lpMJJhhcSMDMMwws
|
||||||
|
jphtLMfVpjJRjJscMJptssnrwdNwQrNbwNzQTbcNrwQT
|
||||||
|
gSPPSqGGGrdLrNQGrr
|
||||||
|
PvWPDvWWCSSBBZPjLVDfhjsLLsDhtR
|
||||||
|
hlLwDGLNnTrbNdtbdb
|
||||||
|
ZfsvJbsJTrsttHTR
|
||||||
|
vjPQJPFcmZjVFZFvbbVcJZJPBBhLMnDBznnGMDLMwBhlmBBl
|
||||||
|
JdTJFtwHjJTzPMqPccqzjB
|
||||||
|
rggffSCvNBCbWBWt
|
||||||
|
ZsSpnnRpLStrZpTDwTVwGTJHDLdH
|
||||||
|
sZqswsrcRpCrsCsrrbtpbpDlttlFbbpGtj
|
||||||
|
LhNgNvNNhTQMhQMWhvvhfWhllbGGPbPtlPmFlDbjHHdlmg
|
||||||
|
ffNBNMhDvQDhvzhBhNTBnSzzrZCZnrsVCSwcnrCC
|
||||||
|
hHGhjLjwtFGwGhhhhtwjtlhrDBQrRBHczRcMvsBcRrDDMH
|
||||||
|
TTfbZdZbPbVCmCdmnZmCVdfrJBczMrrznvBvQBzzzcBscn
|
||||||
|
fdbPZTVVfSdmbfdvjjSGljhhtNGGhL
|
||||||
|
fMrGQbPrbnfljjzVLQzNCzVv
|
||||||
|
WcDqlSpctSJNzSFJLCzN
|
||||||
|
hBBWcHtWgWDmZlwwrsPrRTRTMrmn
|
||||||
|
ZJTVdgpzPpLVVwZgPzTPLwgWdhcWhSQCbcSbBtSWdSWchb
|
||||||
|
qnDGnNjqDqNlqsCSWhMtlMltWSQB
|
||||||
|
NnNrFQGjDRgLrgrpPr
|
||||||
|
nCrhsmVrlrzsTvsnVvmTTlpvPJPWWMPJWWPCJMPNPgPJMjJj
|
||||||
|
ctDqBLHLRLBSBqFRDBFqFFNGgjjrGGMrWftWJPGgwfGN
|
||||||
|
HFcqZqqdcFQRQBdrlnplhspQlTmmvlph
|
||||||
|
mllQMvMTMMdNNdTzTGmLgWjBgGtBqWHhGWjHtB
|
||||||
|
PPsbbZPCVfJFJRJZsBHjjHhHcjqSSWBt
|
||||||
|
wCVJFVRJDDpCPqZlTlwQnrvzmMdmml
|
||||||
|
JfCJtCwfsffBJmFmgFmFhhdwgV
|
||||||
|
lzHzsSHvSRlDRjlHTgqVVmmVPZqqmggmqS
|
||||||
|
GzNNRTWvbWGvGQtfLnbfMbJfsC
|
||||||
|
FnPrwqrFqsPrrsrwqwnbZFPwBQMhhdBHQZhTVBMdDHVhQQVh
|
||||||
|
zlLWlLvLgtgbMdhfVDdzfd
|
||||||
|
NWRNjLmWblGFsssNnSwPsw
|
||||||
|
gnmCjzwnmCPTPhBwPjzBgqPjllJJSWlhfhQDSrpJRhDSlfJl
|
||||||
|
rLHNHrLHVNbVHMMctZFHsbcsDSDWpSDSGfSRsRWSRllfGSSG
|
||||||
|
NNtdMVrLNdZNvLvLZrzCndqBgwwPmwgjggBn
|
||||||
|
tGSBRwwStBftfBHRScHwfcrCgQgDnjQhQDqgBqgCCDnnqg
|
||||||
|
LNlbZmlPVNzWlLZVFPQqgDTQTmjqCQDQqmsQ
|
||||||
|
bpZNZLNNZlLNLZNNZbLlbLZbwrwSHGJSwrGwRtRpcjjtMttw
|
||||||
|
JvGNPWhLPLBffwhGCrbgnFDbgcZwbVnb
|
||||||
|
TqzSTlQzdHQQpTTjSddHTSnbqnZDcrrFnFVFVbVVcbhc
|
||||||
|
mlpdjhhTHWBmWWBJvG
|
||||||
|
ScrppccsbMRRvltvrvrj
|
||||||
|
HRTVTnDwDLJJJZwwVQTmNlvqBNtvWBBBQvhNfqlB
|
||||||
|
TLJdLLCJZHJCVHHTwRdcsGpSbgsczcdcgS
|
||||||
|
tffHzJctHsSHHHGTtzvttZFlZZhVjglVmgDhDdjgjS
|
||||||
|
qCBMCqbpqfQPMBPpPljQVDDZdddZdgFlDV
|
||||||
|
fWwLfbbWNzGGrzvWHJ
|
||||||
|
VnNFqrrJdfQhCDFPhttD
|
||||||
|
pGpTTzHmRTNTTLRRtbBBbzhPtbtbPPBt
|
||||||
|
HLpHpmSRHTpllcLTSgVvNrJVfJvqMnZN
|
||||||
|
tHzgwJCgzZlLFLnWJTnc
|
||||||
|
NnNnmsMnBDFSFWdqssFd
|
||||||
|
mDMBNmRRjjMNnvrPnjjRQQvfRgwpgHHpppHhZbzfCpbHtH
|
||||||
|
TTwBnnZwBnNQZZWLWTTFNFbsCGrGFCNvDDDGFj
|
||||||
|
lzPRfVVRMclPRMRcbFDjfCCGvvsdGCDd
|
||||||
|
hSmmlMlVztlhRlVbqQpLnWqSqLZZwZQT
|
||||||
|
zzVTcqmVqzdmhZJbFpQZQQtLLWLLbp
|
||||||
|
TGwvGgTnGTRHLNtMftWHNbWf
|
||||||
|
vljTGwvvlCljsgSnCBslDPPJrPdVzrSmhdqhVDPP
|
||||||
|
LzCGCGLBGNlLmFFmmSSBBqSc
|
||||||
|
ZJfbdfbWtbgVlblJtjcFcqTmFqqjtFHtjj
|
||||||
|
QgZhZgQVdlfddlWPhfvMCGRGPDMMRvDNGvND
|
||||||
|
nLdpLJSSnLMwjCDwnQhw
|
||||||
|
NZGNgmsgPtPTgWqqCGwRbrDCQbCwhMjr
|
||||||
|
gNqPTqTPttPZqcWfHLlBvccFvhpvJc
|
||||||
|
GNdGhMMvRBjmMVjM
|
||||||
|
trcZJJFmCgfZtcrQCfCZSpqSRjBQpQRQBbBqsSqR
|
||||||
|
JcTmwtTtcrmThLGDhNTThvNW
|
||||||
|
ZqhmtzzfZRsSfRmSTThMpLNgpgJQThMG
|
||||||
|
jdnvdHWFvvjFdCWFrvVVnvFDQrJJMpgMJGNLJNJTPPgQGJGR
|
||||||
|
vnHjDVHBWjdncDRbRzzzmmBsSSzt
|
||||||
|
VZNZSCPTJPpvNTNsCrbnVrLccbLnnRVfWb
|
||||||
|
MlqQBlBztFlhQJdFhccbhnRWWfnggfGc
|
||||||
|
lzJqllwQtmzdHZpvwjPPNspj
|
||||||
|
wTnCMnwQCQvTTJdfqhdtrrSmhttmmm
|
||||||
|
LZlZglZBvjgbHHSrHpbr
|
||||||
|
GWvPjPNGljBzMzJVMwNJMw
|
||||||
|
CSlChlvPPGvdddqPqSJhPdbNbcMTMTbDbcRNDFcFLMLJ
|
||||||
|
HWjgngmBZGQgRRNbFRcHbbzT
|
||||||
|
BmnpnQBBssBsQBnPptSStllGhdCGrS
|
||||||
|
nhQCnCvjchBBjMNrwbRwZvvSvSWW
|
||||||
|
qgHlfqblVbPfVqlbGgPGfdfLSdNssWWLZsNsLZsdNdLSZZ
|
||||||
|
gbGHzzbzHtPfcJhczmMnQBJn
|
||||||
|
TTGJJPPZJGRzDwtQjTjzDC
|
||||||
|
VbnrmNVWVWbffbVMsrbrnvFRjzCzQCjvQDDStDFS
|
||||||
|
MhrRfMmfMmsHgsqPLLGdBqJJGHqd
|
||||||
|
FMCMbmSQTHdCBmpFHprdHcDNqqfqJdJsDcclDDZlNf
|
||||||
|
wzwRjwwtRhnzjRBWRnvtnWtnNsfsVDlDlsqVNNNqcqVlDvqf
|
||||||
|
PtnGWjtwLBwtjCFPFpMpMbSrQm
|
||||||
|
PWzrtrtzBBfjjWGbfNWvLJLgVSjRLVlSlllLpS
|
||||||
|
HhZmHGGhGZRpQlpLpL
|
||||||
|
dTdnHCnhmhcHcntrPPGfzfrcNtPz
|
||||||
|
PfmWWWPwWdPdWPTVCdpjRnzhjDbrFnGbnQGQrrDR
|
||||||
|
LSBnZLnJBQDLRGcQGc
|
||||||
|
NHNqqBqvMMBsJgNvgsstBHNsdwwfTtwdpfTTmVmnWmtmWVlp
|
||||||
|
zjzwTHCzDzbDzNTDjzDCCHRZmmSGmfgPmZGtHtgLmf
|
||||||
|
hsqJMcQltLtPhLgL
|
||||||
|
QWWWcMsWFJssrnsWrdlcPBwNTdzwTvvBvjwpTbBzpT
|
||||||
|
LRvWZdLzzZWSqdpBzLdzLgRmbHPVHtFHMFFMCtHCfHcbVcqb
|
||||||
|
sGGjNDnGTnlSSwsrTwcFVMHwCPPPcVfVHwPM
|
||||||
|
GDQsDlJlQhSDTrpvhhWBLWvdRvWh
|
||||||
|
sWhhdhdhbHSVBbFLZLnnCmCmtTTCCV
|
||||||
|
RcQvjNrcrwGNcGNRJJmTpppgCCgppNgTtFmp
|
||||||
|
GRRRGRGclfjwRsbfHFhWBDhdFs
|
||||||
|
jfRTfgHqgDZHClcPcrGhnbcqrr
|
||||||
|
FztdMLGBzpFJpcnzzclblcnbbl
|
||||||
|
pdNBtdNLdvsNtdLpdGLTZDTgDjmvCZjCRCDDHg
|
||||||
|
bdrbdZbJtZhrMrWRHHvRHRvHllqZ
|
||||||
|
GGjCNgDVDFsCCwFNHjlrPrlSRWPcSlvl
|
||||||
|
CNVDgDwVrQggDDQVsDwNwgTQdJtbfbLhtTdtLmnfbJMntnft
|
||||||
|
mjznjLchnPPcLLnwCTFFvPgJJWdqJqJJdJJr
|
||||||
|
bMlQRzbSBbRBMlMfMBBZFrqggvVvfqdDVDVDWWFd
|
||||||
|
ZSSsRGQtSpBBpZMSbSpZsbtsjhCHTHcLCcjzjCwTTHhmNHtT
|
||||||
|
ThCHLCfVfDTtDnDppTqclFfSclNrwNPwNfFr
|
||||||
|
JmsQjJPJMWRRMddZGZWsdsMZrmcqvNSFSwrScrvwSwcccFFw
|
||||||
|
ZWdJQGGzPJsMRZBGtHLgCHTTVTLBDtgn
|
||||||
|
JVGJfttHgTLVTsnHgVHfwVBDjQDNQSjQwjbNbQjBbddS
|
||||||
|
rPvZcZpcvtzcZddmNQjWQSjDpp
|
||||||
|
rrRZPzRMztFFFqMZFtRVgnsLnVHfVHqJnghHJL
|
||||||
|
grrZZbJSggQDLgrvSSDBVsGdjHjnGnBGVsLGHj
|
||||||
|
pCtWtPtffPRcWdBsGsGRBRvhBj
|
||||||
|
zmvNNclfZJJFZQbN
|
||||||
|
DDqCgPPDgtDSPPDbgCqcmBMBTQLQZBWwQZbsMWZZMw
|
||||||
|
RNlNvpvNvndNjMZtBpwMTWLBZt
|
||||||
|
VlNJvRzdlGFRFGRRRjFVJRRggtPPHgHzgStqCcHHmHqcrc
|
||||||
|
RfmdFgbtFLHlsjRPsL
|
||||||
|
LqrhvCTvNNhWBvBTrThrDWZrPjMQPQMcjzsPcQHTlVHQjcMM
|
||||||
|
BhhrJWJLvCbfJbwgtgJn
|
||||||
|
FWpRfFRjtjFpVvbTTZFPhJhJLdCLdWBhPmHmCW
|
||||||
|
McMzNlGrgGGsHcqmdLqbhJmd
|
||||||
|
lNMwsnMzzsSSGtVVSfvZTtSppb
|
||||||
|
JrJQDJDVvGwGVwvcGCRRcCBBqsWBRZqWZZ
|
||||||
|
bNdmhvMpjmHbNbpNvmbBqlRWlCtCqlRZqRtW
|
||||||
|
HmTjNdmMfTTVvLSzvz
|
||||||
|
WMQWmfGfQfVnMGWGmGtGWHzZtdLzpZhwrtZcwZzdps
|
||||||
|
jBgljNPbNjPFRbggNlNBCcHsrLLLHlrLslhlzdhdHppp
|
||||||
|
BBPBJbFCTGJcVQMGMv
|
||||||
|
fdmfmmjbPmjlmfhfGglTNLCNvPNSpPvpvSLCPCpS
|
||||||
|
MtJwMrwrZJVHMgqJHtwVJzVVLCvpNLvDrLvQSQSNcCNpFNLS
|
||||||
|
wWMVWZzqqMRHztwJZzRqVtjGlBdhbGGbThhTlnTBTWgb
|
||||||
|
ShhrjPrvhlljnHrggPvvSqRMBZZqBTZmMmTmTMdD
|
||||||
|
ctLzbcpWCJbNWRQqBBdZFMBdfZdJBm
|
||||||
|
GQWpzLcVpVNpRggHrhhgvnGPwj
|
||||||
|
PdzSrmmqSgWWddNQds
|
||||||
|
TZbwCTLZbHLWptQHhpgNsc
|
||||||
|
MZjBLjMLDTDqrrGflsjjrf
|
||||||
|
DBHTnlGGBPjPmwRWhn
|
||||||
|
hgLgZccSrcMgLMSpCLJjNWmPWjmVWdwJjd
|
||||||
|
MfQMScQrMSprrTGHBhqTvqlGQT
|
||||||
|
CDvLRCCzQDWzcGQGvRcpVFVsgTsFrgllrTpF
|
||||||
|
mjbqtHqHbspspnMv
|
||||||
|
ZvvqdqqHvLhDhJWzJd
|
||||||
|
ThHnbRTVbQHSWvBVVBCPBW
|
||||||
|
FFJgfqfqNwNrvDCBNppP
|
||||||
|
jzsFfqwqssLzJjffJcssHQHQdnMdhTGHLbddbCnn
|
||||||
|
gwMHHhbSwnqHrgMqMbnBcldhzBLQBQhBLtLttQ
|
||||||
|
dCRmpfvpCzcQllflQz
|
||||||
|
TjPsCJmvZPNPsvZpPTTRCpprjdbrHngqDwqMrDnMbMbHgM
|
||||||
|
CgNQpgTCgNltHTNQlHpRnRnzBfJnPnmpcpfq
|
||||||
|
LGrrvGSMGvrsWPBmnJPmPfmrqr
|
||||||
|
VGsSvdJvbSHVtlttNVHT
|
||||||
|
LnZDtzpzNpPsCbfBbDCDBC
|
||||||
|
gSGRSSghqhhSvSRvvhvVqFJdsfBsCHJbVfddCJ
|
||||||
|
vglRRjQSmnQQCNrL
|
||||||
|
HwhVddVVwRcGHGjlfS
|
||||||
|
MbBvDBGvWqpNWvMbzDMNZZlLcjlSclflcjqgfCRg
|
||||||
|
bvDWDWQbspPPWWQMnGdnFnJtJFGJhhPJ
|
||||||
|
nDJDdQdPDlDJnnbRQDlTqVfFwfVtjJjjFfqqFqgN
|
||||||
|
hScrSmSCTZvZCSmZLFwfffqgjfhNGwjhfw
|
||||||
|
zCzsCCTcMBmSLmsMWHdPWRQPQPddDQ
|
||||||
|
lzGflPZLSqSlccpqjpdNCwjdsjCnCsJp
|
||||||
|
VghPQDVMFQNdJjRNBw
|
||||||
|
tVrhDVmHTlPlGrzL
|
||||||
|
gfSJJlzvGgRPpggR
|
||||||
|
VLDDHhHtlZnnZqbGmtqPmmmmWN
|
||||||
|
VVDBnddDBFFzlscC
|
||||||
|
cmmzRzcRjFrGncTHqc
|
||||||
|
ghJfwJJvqhbrdndWgddWBH
|
||||||
|
fQbSpJwSthbhtvpCwqQbsDPMNLlpRmplzPlRMPzM
|
||||||
|
bBVQDgBpTzbhpgQVhTmBVBzgrvcnrncsnZrwzHJZfnHcZfrP
|
||||||
|
tdWlFLMHGFGRGMRLNFHlfwJcrPwcsnfwcvZPfr
|
||||||
|
RLWGjHLjSjtjmBQVgpQhhg
|
||||||
|
ttRRJBrCfpprmFqSJVTSwNJNTWlVTn
|
||||||
|
nLsMghDbQdnhwWNLjcwNSlVH
|
||||||
|
ZZDgnDQvDdndPCmfrRqzvFqpmp
|
||||||
|
PPzCrcGGlnhPcsdfNZZdpLLNZsfd
|
||||||
|
RjjWHjVWDvjWqVMHjHJjVlHdwwJbLfNZdfdgfpppgpfpZw
|
||||||
|
lBVvqjQqBDBlVmCFGChhnSmTTrmr
|
||||||
|
BZnGZFvGvBGGrwLBZlzNgmzMhMdfmwgmdmmt
|
||||||
|
cpDHtVjDWjCtDTCcDNhhzNJszgzMTJhmgg
|
||||||
|
VWWcRWDpPDPPtHtScqFrLlBFFFSFBqZLSF
|
||||||
|
qBFcCGFcHHGBldzBLtdzSrdR
|
||||||
|
fpmfpswfQNQmfPHfPPgJNwRtngTtSTRzdTrLRnSnldLd
|
||||||
|
fsHNpNPwQZwhVHMFGqvvMcqWFGVF
|
||||||
|
FwFJlqDDwwgFHQdmFmSQ
|
||||||
|
pPtzcrLHZrQfdsBsdLdf
|
||||||
|
bHrrHjbrjbrJvDvbqMVNqJ
|
||||||
|
WVVpPHPfWnHmpccpnpvQcrgNNMSCTMjMgjjMMN
|
||||||
|
RsZbhRFTDDJtZFJhTLRRLMrMrCdSNCdSMjrNhjNGSQ
|
||||||
|
LLqtqqzwqmmflPTq
|
||||||
|
mmLhdZSdqhqnqMZShLQrMWcrcWQwTgrWVVWc
|
||||||
|
CCvjjsfJRCCJbDbFsbGJvzgWWGlWrWlwTQrwQGGcHlBg
|
||||||
|
NRDbRCNsNjQPSSLZNdLn
|
||||||
|
cmVLcQZPSHBGlSddBf
|
||||||
|
DFNzDNszlbBlgHNN
|
||||||
|
tWRzFjsWWtrtlDztzwjDjThLPhRMpppLMhmMhnmncRcn
|
||||||
|
LFFcgdNLpLQggZQMFMcNJggRHCHsTtRtHTzCTZHRsfSRfs
|
||||||
|
qnhlhmGrrhhnqdmGhdhWbnSRzSfsBRSTSRtBflRffzfz
|
||||||
|
PnbmrmGjWMVNvdPFLp
|
||||||
|
swcWsMMmVwWwFtWlbnnZnFBhbNfrhN
|
||||||
|
dQLZHjpDQCfBBBBTGTTC
|
||||||
|
DJvDpDSzSDQZMWsWwPqVtwcS
|
||||||
|
NVTMjjGGNBqhNttdTTjtcqjCfDlhZhSWCFFJmSmZmWJhmZ
|
||||||
|
rznsHPnRLzwspZDWfGZJSLZZDC
|
||||||
|
QzPRRvRQszQsGQcVNqTBBdVj
|
||||||
|
rHGBglBNLpbqCgFC
|
||||||
|
PbmbRnmMSbRPDWRnDVSMPMWmvvcvqqppTLZZFpvCpczLcCVv
|
||||||
|
dsdMSPtMdPnSffQwGGsBBbQw
|
||||||
|
nqjTlGPGnqWsMPPwGdGjQvQvJCCQBvmvCvQJtmCw
|
||||||
|
DDhVbDrcVVFZLzHrZBRNCWStmQWztJvtCm
|
||||||
|
VHDLhFFDpcHZcHGWfsGlspTTMqps
|
||||||
|
FTPZwBzHHFLTTSwHLJTwVQqnDrzgRRVgQpDVRprn
|
||||||
|
jJMjsWlvQqVrqgWW
|
||||||
|
CjNsjjvlmslbcJmmbtCtCThdwhHLhhhLPdBCSPFh
|
||||||
|
jfgllWfLrfmlTjsCjcjDNNDnNcHJnd
|
||||||
|
MMBRSRZGppGFpBbbBGvVnFHhcCJqNcNcHCFNgnnn
|
||||||
|
pMZZgBRVZVGRtRSMbMbvRQmTswWfzLzLzWLrPQmfwLlW
|
||||||
|
tzpdHLNpfpPnlNFHnpssbgShtqcgTTggrsqg
|
||||||
|
JZwWGCWMCcbsSHgWjq
|
||||||
|
QCmDZCJwmvZvCVCVRQGCDMFBNlfHmfLLzPPfdpfBLlPB
|
||||||
|
PCvRTdPPBVBTGgLGrGqMrMnv
|
||||||
|
twQwStrsQwstjSHmmpqZpwqNGnGnNnZgLN
|
||||||
|
mJScfjbttQjQtjcmfbbQJHFTBfdfRhhrPhhTfPVVhPPB
|
||||||
|
DMPJmLLjhJwNBCNBww
|
||||||
|
TpccnsZsbTHpsTHVszbpbGHSNwBtWlfrtCtCfrtlBlFZlf
|
||||||
|
HsHvccvzbqsGzqnnHvLQPghQNNDDvLLjdjLR
|
||||||
|
zmgVMrrjjMGbbzzdqqrgVbRTHqTTThpNHphNTvvvTNnv
|
||||||
|
QLSmZmSJTvTnZTvn
|
||||||
|
SfDtDDmQCFDwWmSrjPPGfjMjjGfMgV
|
||||||
|
hdNHNHjnGHMTcpWlhBchRBJR
|
||||||
|
fPztCTPtttLwLzVbwqSVtCBBDpWvlcRRlBpbDBQWcDWJ
|
||||||
|
ftrCVzfTCFFzTFPrPjNZFHnNsMdZgjHdss
|
||||||
|
TVcTbdqLqzHHRNHM
|
||||||
|
PppQTWffPfCPQSsCprzRwRJDzMDzNwRBRPHN
|
||||||
|
pjCTZjTjmTtsZhGcGdLvdlgv
|
||||||
|
VJRhVfJRBgbdrrrvJpJJ
|
||||||
|
cCSSHSHnZPwDFNHCDCQdbQQdvqnMsrpqQnvq
|
||||||
|
NFFCwSrDzCNrwhtgzhWtBhgzWB
|
||||||
|
RRBRczzcvmfzVRzVPvPTlCWnnlTGqGMgTTnG
|
||||||
|
tNLdSdNSMFhsFttddtjlwGqllqQglqTWqwnThT
|
||||||
|
rLSsLrNdZbbHjLdSFFMjLLtSfVRJzVJJVZcRfvZVRfDpVvRz
|
||||||
|
DBsdssbdbDfPnnqzzJbqStqzjjJS
|
||||||
|
RcGMGwwmrJjFFHPG
|
||||||
|
mCgwMLPgCPmmwWDBDZvWvBCWfZ
|
||||||
|
cJCGJJMZcMGWMhWCJTfFSfDmmgFmtshggffr
|
||||||
|
vBVQBDbNstQmFsfm
|
||||||
|
RVwHNblzwHvNdvBwNjVHGZJZLJTMLMJDZLGRMDGG
|
||||||
|
LNCssCldDbrnNtVWNQ
|
||||||
|
mmcpRBMBRBTZzgMMhtFFvrWQrQmWFtvn
|
||||||
|
MZTgzMZSzTfSMDHwCfPlLLDnwL
|
||||||
|
HlPcjMSHsMSPbgLhFPFNzP
|
||||||
|
ZfRhtVdGBNLFzLqf
|
||||||
|
DRtGGtRGJJTJDZDGdCJrVJmlWvHWcvjMsMWmhQsmCMjW
|
||||||
|
swpQcsBvvHFpBHHcCHJvJddvbbWPdzhzzqqWdhPnhP
|
||||||
|
gDDGTgjNWZTMTNjjggRLggldSPqSqGznnhnbdfnbqfhh
|
||||||
|
WDMDtDNDctVFJstJ
|
||||||
|
rFDbGjrGbpBBbrCbrwpvvZQZZhgTLVVVVLgThCTggg
|
||||||
|
NlfHpttqzltMzRSMSdWRNSfSTTmqgcLgQVcQTcmgQgmZVPVZ
|
||||||
|
HWSWpMHNpNWlpNMsMzWGGwwBvvwBnwBvsnnvnB
|
||||||
|
mZVVHmmRZlvdjvNpHh
|
||||||
|
DFBnFDtnFbBMrQbBMvFLvgtjjNpcLpJdNzJJdhWNpJNWcN
|
||||||
|
QTsbrQggBsvsgVTwRVGZCfGZfR
|
||||||
|
RGNGlGTWJnJlMcRMGqvSmnDtvDDvtLSLvr
|
||||||
|
HfsFhPPdVshfbggDVmzcvSwvStVzDq
|
||||||
|
BPPfCgCFfcBbPbHbBHZPFsbBpMGlClRNJRlQTjQWjWpTTlGT
|
||||||
|
HQNqQbbRQHbZPZQPqbZTvWFWmCjvFRvRTSrRrr
|
||||||
|
lBpBpzLLdBwsLwLLWNggzCFTCmFgWmrF
|
||||||
|
VwsswGVBfJfccLBcsJGNdpJHZZqnhtqqnhPHDZHVtPQMZn
|
||||||
|
LMHnHnPMnFdJFNFJjZvrJF
|
||||||
|
wlTlslptlwtzcvTqvTsVSWWrbJfmJZNZJjcNWfNJmf
|
||||||
|
qDlqVthTztSSpSlqtpTTzLvRRnnCvRCPLBQGDBdDGD
|
||||||
|
HlmlJgRBBpJLpPBHnlLJsrgJDMttvSdddcMSStWjjWtcSzjs
|
||||||
|
qfTbNPTVGhGFCVGTwZfNZNNVWvjSczcjStMMcdSczzczvbcW
|
||||||
|
GZVqffQTwNQTmPRlggHLprHQ
|
||||||
|
BjsWschcTjjWclQTSnZFrjtFtbzZfqntzF
|
||||||
|
qggNGMHgvHMRZMtznbrftMCn
|
||||||
|
qvHdqpwgJTsVccwscT
|
||||||
|
FJwNPHJmPHTJHglTFwgmwqtShBqDmDBzzBzWhCDWqQ
|
||||||
|
fpsjNsMVLVjDCCSzBtjztt
|
||||||
|
sLrdfbsMcbMRZZZbbsfrsrNgGNglRwllRnJnwFvnFHnG
|
||||||
|
lWWVTJlJCTTzDdWzqdtFFt
|
||||||
|
PvPvrhbjhgSjvJQSnQRbjZDZFFHMtGGqFtRMGZFtGH
|
||||||
|
rhPrSgfvJPfmwsTpLcsV
|
26
src/main.rs
26
src/main.rs
@ -1,23 +1,19 @@
|
|||||||
mod utils;
|
mod utils;
|
||||||
mod day01;
|
mod day01;
|
||||||
mod day02;
|
mod day02;
|
||||||
|
mod day03;
|
||||||
|
|
||||||
|
const CONTENT01: &'static str = include_str!("input/day01/input01");
|
||||||
|
const CONTENT02: &'static str = include_str!("input/day02/input01");
|
||||||
|
const CONTENT03: &'static str = include_str!("input/day03/input01");
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let path01 = "input/day01/question01";
|
day01::execute_task01(&CONTENT01);
|
||||||
let content01: String = match utils::load_file_as_string(path01) {
|
day01::execute_task02(&CONTENT01);
|
||||||
Ok(content) => content,
|
|
||||||
Err(error) => panic!("Problem opening the file: {:?}", error),
|
|
||||||
};
|
|
||||||
|
|
||||||
let path02 = "input/day02/question01";
|
day02::execute_task01(&CONTENT02);
|
||||||
let content02: String = match utils::load_file_as_string(path02) {
|
day02::execute_task02(&CONTENT02);
|
||||||
Ok(content) => content,
|
|
||||||
Err(error) => panic!("Problem opening the file: {:?}", error),
|
|
||||||
};
|
|
||||||
|
|
||||||
day01::execute_task01(&content01);
|
day03::execute_task01(&CONTENT03);
|
||||||
day01::execute_task02(&content01);
|
day03::execute_task02(&CONTENT03)
|
||||||
|
|
||||||
day02::execute_task01(&content02);
|
|
||||||
day02::execute_task02(&content02);
|
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,3 @@
|
|||||||
use std::fs;
|
|
||||||
use std::error::Error;
|
|
||||||
|
|
||||||
pub fn load_file_as_string(path: &str) -> Result<String, Box<dyn Error>> {
|
|
||||||
let content = fs::read_to_string(path)?;
|
|
||||||
Ok(content)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn convert_to_string_slice(content: &str) -> Vec<&str> {
|
pub fn convert_to_string_slice(content: &str) -> Vec<&str> {
|
||||||
content.lines().collect()
|
content.lines().collect()
|
||||||
|
Loading…
Reference in New Issue
Block a user