Finish day 3
This commit is contained in:
438
odin/day03/day03.odin
Normal file
438
odin/day03/day03.odin
Normal file
@@ -0,0 +1,438 @@
|
|||||||
|
package day03
|
||||||
|
|
||||||
|
import "core:fmt";
|
||||||
|
|
||||||
|
// Lowercase item types a through z have priorities 1 through 26.
|
||||||
|
// Uppercase item types A through Z have priorities 27 through 52.
|
||||||
|
|
||||||
|
BOUND_a := int('a')
|
||||||
|
BOUND_z := int('z')
|
||||||
|
BOUND_A := int('A')
|
||||||
|
BOUND_Z := int('Z')
|
||||||
|
|
||||||
|
priority :: proc(item: rune) -> int {
|
||||||
|
item_ := int(item)
|
||||||
|
n : int;
|
||||||
|
if BOUND_a <= item_ && item_ <= BOUND_z {
|
||||||
|
// Map to range [25, 0]
|
||||||
|
n = BOUND_z - item_
|
||||||
|
// Reverse range to [0, 25]
|
||||||
|
m := 25 - n
|
||||||
|
// Map to range [1, 26]
|
||||||
|
return m + 1
|
||||||
|
} else if BOUND_A <= item_ && item_ <= BOUND_Z {
|
||||||
|
// Map to range [25, 0]
|
||||||
|
n = BOUND_Z - item_
|
||||||
|
// Reverse range to [0, 25]
|
||||||
|
m := 25 - n
|
||||||
|
// Map to range [27, 52]
|
||||||
|
return m + 27
|
||||||
|
} else {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prio_to_rune :: proc(prio: int) -> rune {
|
||||||
|
if 1 <= prio && prio <= 26 {
|
||||||
|
return rune(BOUND_a + prio)
|
||||||
|
}
|
||||||
|
if 27 <= prio && prio <= 52 {
|
||||||
|
return rune(BOUND_A + prio)
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
sum_rucksack :: proc(sack: string) -> int {
|
||||||
|
counter := make([]int, 52)
|
||||||
|
defer delete(counter)
|
||||||
|
for idx in 0..<52 {
|
||||||
|
counter[idx] = 0
|
||||||
|
}
|
||||||
|
total := 0
|
||||||
|
midpoint := len(sack) / 2
|
||||||
|
for chr, idx in sack {
|
||||||
|
prio := priority(chr)
|
||||||
|
if prio < 0 {
|
||||||
|
return -1 // TODO handle error better
|
||||||
|
}
|
||||||
|
index := prio - 1
|
||||||
|
if idx < midpoint {
|
||||||
|
counter[index] += 1
|
||||||
|
} else {
|
||||||
|
if counter[index] > 0 {
|
||||||
|
fmt.printf("Adding %c (%d)\n", chr, prio)
|
||||||
|
counter[index] = -1
|
||||||
|
total += prio
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return total
|
||||||
|
}
|
||||||
|
|
||||||
|
find_common_item :: proc(sacks: []string) -> int {
|
||||||
|
size := 52 * len(sacks)
|
||||||
|
fmt.printf("Sacks: %d; Size: %d\n", len(sacks), size)
|
||||||
|
|
||||||
|
counter := make([]int, size)
|
||||||
|
defer delete(counter)
|
||||||
|
|
||||||
|
for idx in 0..<size {
|
||||||
|
counter[idx] = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
for str, offset in sacks {
|
||||||
|
fmt.printf("Sack: %s\n", str)
|
||||||
|
for chr, _ in str {
|
||||||
|
prio := priority(chr) - 1
|
||||||
|
fmt.printf("Found char: %c (%d)\n", chr, prio + 1)
|
||||||
|
counter[(len(sacks) * prio) + offset] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.println(counter)
|
||||||
|
for prio in 0..<52 {
|
||||||
|
fmt.printf("Checking prio %d\n", prio)
|
||||||
|
matched := true
|
||||||
|
for offset in 0..<len(sacks) {
|
||||||
|
idx := (len(sacks) * prio) + offset
|
||||||
|
fmt.printf("Checking index %d\n", idx)
|
||||||
|
matched = matched && (counter[idx] == 1)
|
||||||
|
}
|
||||||
|
if matched {
|
||||||
|
return prio + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
main :: proc() {
|
||||||
|
// input := [6]string{
|
||||||
|
// "vJrwpWtwJgWrhcsFMMfFFhFp",
|
||||||
|
// "jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL",
|
||||||
|
// "PmmdzqPrVvPwwTWBwg",
|
||||||
|
// "wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn",
|
||||||
|
// "ttgJtRGJQctTZtZT",
|
||||||
|
// "CrZsJsPPZsGzwwsLwLmpwMDw",
|
||||||
|
// }
|
||||||
|
input := []string{
|
||||||
|
"lvcNpRHDCnTLCJlL",
|
||||||
|
"RFZggsMrjTFGCJmdmd",
|
||||||
|
"srsBZgBqwBqRZbzqtHpzzDNtHDqV",
|
||||||
|
"CCTPpCvlpzzZQQQflrzbQDttTJcgcggJcHtcddtdhT",
|
||||||
|
"nMLBRnGsFFLznRFRLMMNBnNLDRDdhScJccctdSccJJgDDHhH",
|
||||||
|
"GVBGVBsLjsrrvfzpjpfQ",
|
||||||
|
"dzVRSPVVBVDSPzDBQVSQFFlrclMplpMJMtPJlJvHZCMt",
|
||||||
|
"TjmGmbhjTnTmwhmrvvrHcZvCHZMl",
|
||||||
|
"fnLwwqfwfqjghHwGThwfTGGBFVDFFsszSRVzRBsdBDgFsV",
|
||||||
|
"CCWFCcdDWwcWFpSvggnzRRQszngJwT",
|
||||||
|
"mGtqqLrqfmmLNtNrgTjgJzNQlvJTvznJ",
|
||||||
|
"tnhVbhMLLZZrnWHPSHDBWbWBFd",
|
||||||
|
"nQhvgnCQjSSSTTSMCsLDsfPfDlsPJMWLzL",
|
||||||
|
"qrqBFFBbrVRLszLfsqdqPW",
|
||||||
|
"bNFFRbBcFZNrZRRRbprNpFrHSwznTnvSwgHvzCSSSjnCQwgz",
|
||||||
|
"tnnZZVmwmqtvVdZqnddQQHHTHQLsFTnsPrrgrQ",
|
||||||
|
"MzMflMGpzGzPGPgjLgHrGj",
|
||||||
|
"zPfhMJDDMJfzlhcRJvVwcVtwVcmcbqqtbv",
|
||||||
|
"GVzrBVcPVfGrzVVBcQJlGGRCZSSRtSdRnGLJ",
|
||||||
|
"wbjvHWbLvhFppjZdtwZRNddtJwlR",
|
||||||
|
"pvMmbpFFbqqqvWHMFvzrLDMMrMTTrVTPzVzc",
|
||||||
|
"qPmgpmwpwqWWPHdjdTNStzNLMztSWtMNtz",
|
||||||
|
"lVFfJrFJbbcsvcRVRZzQCzQNSZTZ",
|
||||||
|
"DGbvFSDGbDjnqgjwmGdq",
|
||||||
|
"DMnpnpwwnpmRRmcRBDnDwpbRQHssHqhHCHHSsQddHZQQcqqs",
|
||||||
|
"JlZjjlJgNSddfsgQdf",
|
||||||
|
"GvrWvzNjvPVLDpbPZwBP",
|
||||||
|
"drQDzHsHrdZWqDSSPwmmJDDbvbSJ",
|
||||||
|
"hphBhCMFlBtBtGTJMJsscPwTjMJv",
|
||||||
|
"tlBCGFgVFNpGClFFVGGtFBZrdZQznfdQQrRWVRQdRsVf",
|
||||||
|
"NjdCLdjzzlNdjwBBtZqpqPJQbN",
|
||||||
|
"CsDWcHcGHtcBbJPpbP",
|
||||||
|
"mGHSssSgSsHFSgGrSgmlLzCdldllrCVCLdnfnT",
|
||||||
|
"rDLLzRmbcLJRtRSvSBdZtSTp",
|
||||||
|
"MFswshwgsCsjghgFBsGssjlZpfpvdSHfTdCZTSpHtfddTH",
|
||||||
|
"llwlwGjMPMQQnBMswsFgglPVcWcDcbWqLWbbLJVDzrqnVr",
|
||||||
|
"pqmmcSTLfSSSMFlf",
|
||||||
|
"rHWtPWnHtlrlDntzWwtBFdzCFMRCfjRQFfgMRMjC",
|
||||||
|
"PWWHDVZPDDJVlWHncGGbqqTVvVmpGTmm",
|
||||||
|
"wLBtWhGWJBdMmZMs",
|
||||||
|
"jgvNCFvvGppGnmNJ",
|
||||||
|
"DDRQTgcvjTPFqGHhRVhLRSVL",
|
||||||
|
"tPPwLpBpDpgLSPvgQCvsLPjdjNZrJZsdZjsrsnZNjbZc",
|
||||||
|
"lMWzWMBhmMhRGfVRffHmMjJcJjrNNZnjJcWjNqJnZJ",
|
||||||
|
"mFMzhTmBGfHTwgPgtptFpPgP",
|
||||||
|
"qCcqJQHslgtsQsCZmPWNSRNZTPBBCN",
|
||||||
|
"nnLpjjnvwwvDnrGwFvbFjwPgPWRTPrrPShNhmmNSRRPN",
|
||||||
|
"bnwdDLjnzGgvFqdJQcqVfQVqHt",
|
||||||
|
"DfCzDCCTDLDBCsdjzwdrHjbRgjGH",
|
||||||
|
"MSStMScccJtPptJNJZtJJSrFdwPGjFFHHwsggrwdwRdP",
|
||||||
|
"nStlpVlhhNSshZlcNZnMcctpBChWBQLqCWqmqvmBCBmQBqmL",
|
||||||
|
"RfLHNvfLfLZQBtRZsBfffjVqGvqpGSmJpgrJpjGjrp",
|
||||||
|
"FDbPCMzbTTDDPmzrVzqppJBrBj",
|
||||||
|
"DPcWPWDhlbCcWBsQZZfHtdwf",
|
||||||
|
"fbHfPfHHfPZWgZfSGpqNBqdBBjpjdPBJqv",
|
||||||
|
"rnVNCwwrhhDrmmvcmjdDqcmB",
|
||||||
|
"hFRrslFRNhFzVthllRCRCCwnQtSGfQgZZbbSWQLSSTZWbQTt",
|
||||||
|
"nmVqTFCmTVbnvVCnqwFrffjhZLffhNrNJF",
|
||||||
|
"StBHWDgMBpHMBHDzLjffjWwZJNNfNZjL",
|
||||||
|
"wBBcDcgzdVbbQcnQlq",
|
||||||
|
"MfGCtqGDhjDqHhrjGCcJZZBwHRcspZsBsHRc",
|
||||||
|
"PFFpLFSpzVdSTPgnzzdPPZBRcZBwBJRcWJBmJW",
|
||||||
|
"vdTTzVpNVpfCChMGqMvr",
|
||||||
|
"VtZzBzhtlrhznFlBfgrfZgFrPjGRMGjRTmSjRjRTHjfRHmRv",
|
||||||
|
"DQpnsbJCsNNnpNNJsDQdCDcRmHPGTHTHRSmRmHjvjHSpSS",
|
||||||
|
"cQbnQdNLdJJQJJJDJWnFwzgwBthrgZBwBgFLZV",
|
||||||
|
"VhRRgmhpFjFFBDVPGPWQPzvvMMWfjf",
|
||||||
|
"qcnbnCbfLqJrCnrcdbbLrGSlzWsQvsWWzvWGdMWGQl",
|
||||||
|
"bnfbwrcwCrHqnHcZhFBTBVRDFmpBHB",
|
||||||
|
"lrtqltJJJqSTWJqVHRnsRhphdbfbzBdhsRsd",
|
||||||
|
"vSZCgZMMLSNvCQLPLDPNgZgnznzBfsGGnQnQGdnsfhsfzb",
|
||||||
|
"CMFLgmPgFFNMFDDCgLLcrWrjTTjtmSJqlWTTwWSr",
|
||||||
|
"LdjljBdZMFdZFLLLgPvWzQRzCsCmCVssmFSW",
|
||||||
|
"TJttwDhnnTlWsQzSQQDvWm",
|
||||||
|
"HtcnfctJwtwrHhrwhfHhJpjNLMZBMgZLrBlbbLNPNj",
|
||||||
|
"qqhNchPdpqTTNqpDmmvvGzVfzfmvdH",
|
||||||
|
"cwccjsFwFjnwGwQDfVVVVv",
|
||||||
|
"FbWjcRsLLFngBrjpbJqCJZTbJZNClq",
|
||||||
|
"lhznMTSzSnjhQGtVPQBdGB",
|
||||||
|
"msfNDDJLWslJgfNgCrmLdtGQFVvdGQPZVttBFP",
|
||||||
|
"RCrJJJDrJRsfgmbsrNsrlDMTSMHcjqwzScjMqqTjbbSc",
|
||||||
|
"nNgsvNWDRvgnRNVCFddTNZTNZQCTFZ",
|
||||||
|
"lffHJfHSPmSfvLlbLmpZrCTFTtrTQHqtTrCCrq",
|
||||||
|
"cpzblplpbvMzWnsDDB",
|
||||||
|
"CgtvQvJvMtWttvwftCdWvDQrfsFcrqnlcnqZZFRcRqsnhF",
|
||||||
|
"HzLzVBNLjHqnhzFlWFlr",
|
||||||
|
"NmBjLbVVbmbTLpTjBNVLHNdCtTSWQvCgdwSwJtWQwdSD",
|
||||||
|
"lncHcnlccVSLNSQNslncLcrZJCrgPfJZDrggJCCvZPHC",
|
||||||
|
"jRqqRmmqFwRFppfPPppPBfpWBvZf",
|
||||||
|
"wmMqjtTdjFwGGdtNhQbVfhntcNLVbL",
|
||||||
|
"HFBgMjpbpddMpbHdgHLLRNwhwFLDtNSRDLLD",
|
||||||
|
"zsCnfqZflrlnhhrtwNgggNNL",
|
||||||
|
"CGqnQzlqlWWMWgVBGg",
|
||||||
|
"pQnvzjztpzpCmtzzjzpnBHrJNGlqggMMqgqlNWgfNNqNCP",
|
||||||
|
"sVTSwddRRDVShwRwRTWgPNqMGQMGNqMWslsg",
|
||||||
|
"hDSTQhcQcHrtcBmZHv",
|
||||||
|
"QRmQfvQpWpswfZWWvNbhlMglgFbZDldlbL",
|
||||||
|
"rzHqtcnqqVjqjGcHdLdFdCFdCbLDnMCh",
|
||||||
|
"DGcGGSPDpWTsSfpv",
|
||||||
|
"llfMHTmvHlfZlFZRzgQzsFBLtLzFGF",
|
||||||
|
"wrWNJrdJhRmhGmNh",
|
||||||
|
"DWrrJjwPjCdPDwdmwnrTZnZZcqZfnqbvZfHvql",
|
||||||
|
"mPmVJJmNZJmlVBPPrZpWcFWbGWbjgqNbdqjSjg",
|
||||||
|
"nMhzwRhwvhMDMgWHRdGHgccggd",
|
||||||
|
"sMvnhQshMwwvdvMMCwBtlZtplZpTmPBVZVlC",
|
||||||
|
"ltlRzpncRglplzhFwFwzZZMWLWZBqnDVZLDVZQQQ",
|
||||||
|
"SJcdvJscNSsGcSGCSJmsTQDTVZQTLTQQWCTTMQCW",
|
||||||
|
"sPdJmcvsJvGJmdJmfpwftfrlztrRlPfP",
|
||||||
|
"LdPrWcMCWCfPdMJgdFsbRRHsRSHRHHcFpH",
|
||||||
|
"hVVTQmQTnRFLFsmzps",
|
||||||
|
"qthVVwZqlQLQhNttDDDWrffDJJJDrgNP",
|
||||||
|
"BTjTNjtlPrBjjrljbnMFfhVWFFhlMWMfHdll",
|
||||||
|
"mzcgZvDggDDCJCZLvsLJLcmVqWVSVqFLfdHHMWVWWWffnF",
|
||||||
|
"cmmcmzQDZQJmZCnDRgQCTTwjpTtwRjrbNjpPpwrj",
|
||||||
|
"rMbchQphhCSbGnzSbl",
|
||||||
|
"qFtgvTTqFFFFJGzWJG",
|
||||||
|
"NZjGqGBNjNHQrhpPNHQr",
|
||||||
|
"LnLmbtTtTwtLcVfFFLtPrfPrfqqqsqhSvrhrhh",
|
||||||
|
"BzJWzZRZJzJvlZJCZgZZpJHCqQDhNQPDqDDrjNsjPPNrhSCN",
|
||||||
|
"lpJWZzJpgHWdWMgHlJMZzgpJLGVLGGvwVwtmcGbvGMGVvncn",
|
||||||
|
"WdBgdqRgWqHmNNwsGgcQ",
|
||||||
|
"ptPVbPbSbMJrmsVzRzhwmcGQ",
|
||||||
|
"SSbvrJbJtCDZfTqdRfCdBZ",
|
||||||
|
"WDNNWvPpvNJRRbGLsGMnnbmG",
|
||||||
|
"qgFdBwgVdjwdtjjdBgMgGmLQsnZrnZssGswsmLrw",
|
||||||
|
"FqTCTtqjdjVqgCqSMJMTvPThTJMNDh",
|
||||||
|
"brSSSpZjVVWdfVrHPhRBggNNGwHr",
|
||||||
|
"fDlLzFCLMvnMMJLNHNCBQwNhRgwRPP",
|
||||||
|
"MJqMmfzDvFtLDtmsVsZZTsSScWcsbq",
|
||||||
|
"CSZlllhSdnDrrDdJjqjzbSGzGvwbfHMb",
|
||||||
|
"gTNvVNLQtsFpQHqfwfBfVMfHzf",
|
||||||
|
"QgNmWTtmTcmmdmrZRvnlPl",
|
||||||
|
"SmzfvfjvjbjLNJjD",
|
||||||
|
"cFhWMhGHTPhccMQQGBTFGwbVVwdbddJDvVJLvDDHvd",
|
||||||
|
"GFMBGcWTWhcGrhFZTTchQsSfgtmnnRvnmnnRgRCrRS",
|
||||||
|
"ZTQHVZsZSQpQQGBMGqfBRbRB",
|
||||||
|
"CwtLDtNFcPnllwnqvMgbvGVfVfBG",
|
||||||
|
"VClLWWFPPhlhctsTrrSpWpmszjZj",
|
||||||
|
"HChzPltNnnHtnpqSpHpFpSfSvS",
|
||||||
|
"mJmQssZJLdTQLcbjlGLGfSgMbqwwSFSMSFMMqMwS",
|
||||||
|
"JdBLlGTjLjjjjdmmBPnRzCBRNPhPtPWPtr",
|
||||||
|
"FPLHMHqqPMgFLLggsMghTJhwtDSSJDltJvtwdvST",
|
||||||
|
"WQfmjQZsjfZNQCrZCNZQQWQBCSClvdwTSClwSwlTJvtwJdbT",
|
||||||
|
"BpmzrWcpBrfmpsGPGFqPRgzqVPLM",
|
||||||
|
"bHjccpHwGHJTfPlffPwr",
|
||||||
|
"VtChMZVhhStZdfTCfJvcPRCTJn",
|
||||||
|
"sLNLZcdNZZqZqqVqSNWtjQDGHssHGHgQHDBgmsDg",
|
||||||
|
"CdWgCpddwgClFlmmVTBbRtRtbntBVVds",
|
||||||
|
"vcJGhPLPhJvChLhMLfccrvfvsVVbsGBTTBnVbRzBVstsGnbz",
|
||||||
|
"vJJHhjcCLPPjQPHLrSZmpgmqwlWZZgZZQm",
|
||||||
|
"VpTFCFtrjCdJdjHVFnSjszSllDjsDzgvzl",
|
||||||
|
"fhmhZBMtfZfGBNfNcmsbZnzSlRsRggslsbnv",
|
||||||
|
"qPLPhMcLhPfNWPpFrdFdFTtJ",
|
||||||
|
"nlgQJhJFlncMzMWZMFvw",
|
||||||
|
"mDdsDfHjHsjHdjTLfpDsbDcNzzwcRbZNZPMcCPWMRPMc",
|
||||||
|
"sqqdwffHjTmdmpffmLddTTGDnSJtJBShVVhrGVJtShrlBBnJ",
|
||||||
|
"CrcMcMDBCmLlZdSd",
|
||||||
|
"qPjGjnQPqWjgZmTdlFwTmqLJ",
|
||||||
|
"bnPnnzHjbPznzVpdpVDcvprr",
|
||||||
|
"TCScMQcQCrssJPQhQs",
|
||||||
|
"VpfnqqfdVVwpqvqwGbDPPsjgPShDSsJhlnSl",
|
||||||
|
"qffdmGpfwfbfvVqpfwwfbdqRMTSTWNMWTmZLTzTCZTMLWC",
|
||||||
|
"QQPpPbPbDNplSJrCCj",
|
||||||
|
"VdMzffgnRmVdfVWRvlrCTjRlNBvrrlrr",
|
||||||
|
"mGgNdthhGgMWWtsFcHcHwqLqtH",
|
||||||
|
"HrPFVqVppVpDjFDrVbCpDFJSLsmwjhjGLLmthJLJLmZs",
|
||||||
|
"WWgRdMdRMnQnRzWvPSssPWssJmhsshtG",
|
||||||
|
"MnfvMlnQccvfMlcTRMQdRfpHPDDDpPrDTbTBNbHbHDCq",
|
||||||
|
"GWWRsSwLhWsRsSbsPttThZqrNBJJBgPNCJCCqNMNgP",
|
||||||
|
"HpVDTHzfFDpFfzHzFVcrBZCggMJBvNrNgcNNrM",
|
||||||
|
"jlVpVpVVQDHdFVlmmmQTlzpjjGstWLsSbsnnnStWLRhnht",
|
||||||
|
"prLMDDjNCLZbdFLGngdLBv",
|
||||||
|
"VQHmhWSSzhWHmPJRJhSmVHJPFvgTbtnTbBtGqbQnbdqgTFqG",
|
||||||
|
"RzwzzhwhwNCvvfpc",
|
||||||
|
"wQgmZnhmWVtwQmnnnQbQhzwsFcRPrFPvRJhPlPPBBBFvJv",
|
||||||
|
"DdjqMMGLLMMGqTGdMqdMLdBBJsJPJBJJrrBFcqRlPlqr",
|
||||||
|
"DsddsfMsWgfzftZb",
|
||||||
|
"lcqlFSFwBBPlNwPlvSlQfWsVLTQjzjWVfLsWVq",
|
||||||
|
"HMMbMHMtJHgFzzFrVVtfFQ",
|
||||||
|
"RMFpCDDFcCNBcZvP",
|
||||||
|
"gwDrClhppDDPwPhnmPlwDrlDjMFfMTjMTjJmRHHJBJRMJHGj",
|
||||||
|
"LbbZBSvSLVRHffHJHJGZ",
|
||||||
|
"WztdtLsSvNQStbbtzdStthWhnwnPBDclgwwnrwllCC",
|
||||||
|
"MnMMBppMBDWMhpnCDBgCBmRbstvPvvbGltSPVGlVPWVv",
|
||||||
|
"TrrddJHjNcTqrrqdFcqZwSvLSlGGPbtFRbLvFVSRPG",
|
||||||
|
"JTccqTcwNQcTJrZwNJcJqHwJBQDfhCBCpCQpmpDfMRfCfBpn",
|
||||||
|
"njVcjHfGjVjpTCpMWprW",
|
||||||
|
"tsSsQDvSqQshDhtmWpnQnmMmbrpdzM",
|
||||||
|
"FNhsDDLNLnNllBqfRJGBVHBPHRRBZZ",
|
||||||
|
"hFVdlFSFlfZdRhgWgdWnnnfGpMNfnLMQzQQjMD",
|
||||||
|
"RsrJRHsvBcvHBHjDMMpDQDjjzDHj",
|
||||||
|
"BcCmBqvrbbqJgmFZtWdRVSVV",
|
||||||
|
"FzzdDJrJCFSFRqLlwsgspsBCpL",
|
||||||
|
"HQdWhMZMVwqLMllw",
|
||||||
|
"bbQtcvZcmHtNPZcWthWRvrdrRzrSDfRSrzjJjR",
|
||||||
|
"bTFZzHjZNJHzLggsJgbdsWcdcShWCwsSSdvGvv",
|
||||||
|
"VDBmntntfCBGGGGhRc",
|
||||||
|
"fMnnPDfmDlmnMPmtmttnVlHzZzNLbFbLbhzJJjMgJFbb",
|
||||||
|
"GzgJGPRrMSgTgpgH",
|
||||||
|
"hcvWhBdhcfPFvmFQvwfbHMsMMbpDpTDSSHsHpd",
|
||||||
|
"LmcvFFlcWQlFlfPnRZPVCJzJClCz",
|
||||||
|
"DdCHCHrmHRgghTHH",
|
||||||
|
"pFVZFwfssMsgghML",
|
||||||
|
"tSnphvhtctSSQNDqNdmrWGvq",
|
||||||
|
"rqmtRmGmcWrRRQprRRnfbGMMlPGGPblwMbTP",
|
||||||
|
"BHHhVZSvDNdhvBVhshbzfPbTmDfnwPwzPgbl",
|
||||||
|
"ddvBsSSdsLdshLsLpmWqcWrCCrtFpQ",
|
||||||
|
"wZPCwdPCHrnLQCGZDcPRqllzqqBzjlqc",
|
||||||
|
"gMmgnJspsvTmWNVWNpTNWNcDcqVjqDcclhSzllRSDzqR",
|
||||||
|
"JnWsgMnngmttFWWMdrwCZwHfZfdfGdFd",
|
||||||
|
"wwgNgrsWvbfBrqqsWbjDCDDDCDCmFbSmLDLlSC",
|
||||||
|
"QdpdzQTVdzRMTVVzcHTQLnlFmZHPSChCmlDPPHnP",
|
||||||
|
"dRMLVttzzVtTVQVqrrrgBtsvWWwtNw",
|
||||||
|
"vtBvntlqMvfnTfPDPhdRNbhdTFzF",
|
||||||
|
"QLWcmrrcgmCgCcsgcQWlWWrrDjjzzjsdFDdRhPNDhhhzDzPF",
|
||||||
|
"GGWHcCQcCCSlmmBVMGVBfMqwJtqv",
|
||||||
|
"cfqfhDRwhqZgRgRzRvcfhBSrsBnrDBBJWrnrWrSmmr",
|
||||||
|
"VCTVjGCTCjFddQntmrsVsJvrtrrW",
|
||||||
|
"PFQGpFbvPRMNqgRq",
|
||||||
|
"MmDgZZGMjZGfZRFztzCtCjzSrF",
|
||||||
|
"cBNpPJpBdNntcBHBccJlsSVVzzSwlCRrCnzsFw",
|
||||||
|
"PPBJLPPBBLPHBNQgqfMQtmTftGGvhq",
|
||||||
|
"bbZnbnVVgVSnbgZtntZrltsprpMCJvpqdJmsCMMmvvCq",
|
||||||
|
"BjDcjLLDzNjLDcjDzhcDNLLLHdpmpHJsqsMMNfCHfJpspqvp",
|
||||||
|
"dFLTFBcBzjFLgTbQtRgTVTlZ",
|
||||||
|
"nqNnrBRjLnjLZCqGGlqSGWlWDS",
|
||||||
|
"mTJTTcTJJfJfhhhwMbQDPWCQFCRlbDCSDDPl",
|
||||||
|
"dhMcRgJmgRrBrrrNgrLZ",
|
||||||
|
"GvJvJSGZFrGmmbmCrWnhjncLctcWttVqjLBB",
|
||||||
|
"wDlTzwlHTncRTqnRBt",
|
||||||
|
"gspglgzDzdPDfpgfdDzsgMPGvZJBrrbZGJNFmCFvmFvFvM",
|
||||||
|
"RLjMZZzfvNLBdjQfBfQdhRfSTVlcVqGbGcLGlbmqLVccmm",
|
||||||
|
"FggHCwsggrWWtCHJDDHtWrTNNlqSnlTlnGVTmWGcbcbm",
|
||||||
|
"PtpttrwsJssPsdRQvphZNzdMBh",
|
||||||
|
"NqqpZBHqTBpPNpPpGwwMPGTJjjLjQljGmtLfftllbJQfGf",
|
||||||
|
"nHczcrSFnVWSlrltrgJmjLLQ",
|
||||||
|
"SvzcDDVVFzdzhndCFSvnhcDspRDRDMPpMHRNPPZqppwM",
|
||||||
|
"FRSbVCSFFCDMFjRMjSSVFSWggMmWtWngJWttWmmJctnt",
|
||||||
|
"BPwcQQcQqQmWHfgrfwrh",
|
||||||
|
"PPlBQdNQvdLzzvclczdNRSbpLSbRbDjFZFFZVsFs",
|
||||||
|
"wtrrVhBbpcZSSjBfSfmm",
|
||||||
|
"MDWTvTMGMRCDCTQWsvfrRjjFfHlFmjlmLlHl",
|
||||||
|
"gQrTQvQDssdNWGsTstcbptwVPqcbpNqttP",
|
||||||
|
"jtGSwGQczrzjtGzrcsJwMRqMVMwRVMWFvVTWFV",
|
||||||
|
"DhLgnDLndDHmLvWqpTHqHHVNqF",
|
||||||
|
"LhdmPhfgZnZDlPCPmDfljQtGsJtBsWjGJzJSWBjC",
|
||||||
|
"zHDjcjBjTfjjfGpf",
|
||||||
|
"NNFTnNwPNNdqnJdFnqqTgmgftfftrWCZGbmrpWttmW",
|
||||||
|
"FLJqVNVNhnwnTRsRQBlQzShs",
|
||||||
|
"HJGJGJzzHHQHfJHsnNsGMbccMrTgbr",
|
||||||
|
"vddSCCjdmVvDDmvmBVbbBchcrrcscMTTnscn",
|
||||||
|
"VjWdFCVVMWWmjdSVFSVpqwwZttfJJltJZqltppLw",
|
||||||
|
"SnmPBPBnMLnPBsSgSDqRNRRccDfNcNQQRg",
|
||||||
|
"lZVWtWVzCjvZzCCGzDwbwRwtqJwJNTtDfD",
|
||||||
|
"zCzHZFFFfdLnBfFf",
|
||||||
|
"NRBFpNNJgNbWbJLRpRbWNtNpZllCZdjjZfjPVljTVCZQltlV",
|
||||||
|
"sDqHmsHcDrwHhMDlfCQfVBjDPCTd",
|
||||||
|
"MnGGcqwhhsrchcmGpzRJSSGGJWJzbJBR",
|
||||||
|
"LBzjQQzcjWvHWLnVDdnHRffHDCVR",
|
||||||
|
"rmJSrPJJsbNZssGSPrFpddfGwDRRpVjVpCGdCp",
|
||||||
|
"mPsrmsNTrPNLTjQlWQhqLc",
|
||||||
|
"MSDFszbhbRRTRdwhtw",
|
||||||
|
"PWmCZCmZVvGqMcjmJRpdTTtdLpqwdlll",
|
||||||
|
"MWGmmCVHvMSBDSNbbHHS",
|
||||||
|
"mBwSBSfSPHZCLPZSWwfPppTndVpdVncFgcgPpP",
|
||||||
|
"rhQJjzQjrltJzGqCrGJTvgqRpnTgFgcFTVFqFR",
|
||||||
|
"QbhGMJrhzrhQGQCsjwMDNWBDSZBZwSBLmM",
|
||||||
|
"bQfDPgDQbQNGPgflWfvMZcRMMFmcvMfZ",
|
||||||
|
"BLqSssjnzpBwszqwzFCNMvzWvRvzCCZFvc",
|
||||||
|
"BpNpjnNHnSpssqLqrBLLHjdhTPPDgbggllldhTPdrrQh",
|
||||||
|
"CvCMqNWVVqqPvNvvChhhdSnFHwBdWwhfdS",
|
||||||
|
"gqTZGGjlmclrZjlmSndSDwfFhhDBHm",
|
||||||
|
"tRrZpgrcctbbltRpgtqCVJCvPsRvsvPCQPCLPz",
|
||||||
|
"dTjRdWDBRzvjfzTfvTJPtJttsSLqHsSQJw",
|
||||||
|
"hrJNmbnFNZrbhlCsqltqcQcQSQqwPL",
|
||||||
|
"pVNhFgZphZmjzvjGDJWzVJ",
|
||||||
|
"gWzQhCWbQnCCFgCJnFQnWCzwjrHjjHGTwHGrhLwjjjtStL",
|
||||||
|
"splcpqDNDqqcZqRlspwHbjVrjjHTrwSbtVNV",
|
||||||
|
"BpMslDqDmRDRsBRBJPPnbzCfvQgmCWJb",
|
||||||
|
"tRtgRQWCwlTglHZHTglCtTdbbfvhWpbSBbhWzzbfGpfhbb",
|
||||||
|
"cqZVMJmLqmNrsJMDbzGrGSvzGBhvvG",
|
||||||
|
"mmnJPMZcclFRdnQtCQ",
|
||||||
|
"QVQVqfFzVVQQrQwZsCTrBtTrccTtctcJRRjT",
|
||||||
|
"vNNPnvGbBtWBLvBf",
|
||||||
|
"mMHbfDfHdHGmnhDDqZFDzVSQzF",
|
||||||
|
"NNlTNFCRTrfllTZsPWSsFPfzJdVQVpDQVszQVtpbzJMVbJ",
|
||||||
|
"LNHjNHjmLLjNqvGgvVQJQDVLbDVDpdQQzQ",
|
||||||
|
"nqmqGHjwgHvgwGHjGgccNTSWrrlCZrFfPSFFCP",
|
||||||
|
"qWzCQqhPCHjHmqJhqvqmjRgSFMTFggMFTFVRVVTgTm",
|
||||||
|
"SptGsDlnGfnDLgTMTwgRFFFs",
|
||||||
|
"bBcntZdpGZZcctlGtDfnDnBCSWqJvQhqjqzjhJqJQCQWPd",
|
||||||
|
"SjZJrSSDShddqLvPqzzdwq",
|
||||||
|
"nTssfRpQQmQCHlPBBgGmwVGzwm",
|
||||||
|
"TWQsbCRQFHFWQRTpzRHRsRrMtDrjhjbtMbccrttJjJht",
|
||||||
|
"cCChVMwPPMHCPCCPrvJnntdTJSvTtdrSRt",
|
||||||
|
"FGfFDBhGGlfGGfWJWdbSRSnRNbTvdn",
|
||||||
|
"fGpGlDmBhflgfDFmmfFpcVzMzqZZzcCPQVZzqP",
|
||||||
|
"SmgtSjGPjppBjbqqWTCZDQTHHHTg",
|
||||||
|
"VsFfCzLvsMfzNfNRhVMslzlHqrWrQDQcqDqTrLWHcrWJJW",
|
||||||
|
"dsRdsNCvNMVpwPdnnGbbPb",
|
||||||
|
}
|
||||||
|
total := 0
|
||||||
|
|
||||||
|
// for str, idx in input {
|
||||||
|
// sm := sum_rucksack(str)
|
||||||
|
// fmt.printf("Line %d: %d\n", idx, sm)
|
||||||
|
// total += sm
|
||||||
|
// }
|
||||||
|
|
||||||
|
idx := 0
|
||||||
|
step := 3
|
||||||
|
for idx < len(input) {
|
||||||
|
upper_bound := idx + step
|
||||||
|
offset := min(len(input), upper_bound)
|
||||||
|
prio := find_common_item(input[idx:offset])
|
||||||
|
fmt.printf("Priority: %d\n", prio)
|
||||||
|
total += prio
|
||||||
|
idx = upper_bound
|
||||||
|
}
|
||||||
|
fmt.printf("Total: %d\n", total)
|
||||||
|
}
|
||||||
9
odin/day03/scratch.py
Normal file
9
odin/day03/scratch.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
BOUND_a = ord('a')
|
||||||
|
BOUND_z = ord('z')
|
||||||
|
|
||||||
|
BOUND_Z = ord('Z')
|
||||||
|
BOUND_A = ord('A')
|
||||||
|
|
||||||
|
print(BOUND_z - ord('v'))
|
||||||
|
print(25 - (BOUND_z - ord('v')))
|
||||||
|
print((25 - (BOUND_z - ord('v'))) + 27)
|
||||||
Reference in New Issue
Block a user