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)
|
||||
}
|
||||
Reference in New Issue
Block a user