day_02_2.zig (9817B)
1 const std = @import("std"); 2 const debug = std.debug; 3 4 pub fn main() void { 5 debug.warn("02-2: "); 6 common_chars(input_02); 7 } 8 9 fn common_chars(ids: [] const [] const u8) void { 10 for (ids) |id, i| { 11 outer: for (ids[i + 1..]) |id2, j| { 12 if (i != j) { 13 debug.assert(id.len == id2.len); 14 var distance: u32 = 0; 15 for (id) |char, k| { 16 if (char != id2[k]) { 17 distance += 1; 18 } 19 if (distance > 1) { 20 continue :outer; 21 } 22 } 23 if (distance == 1) { 24 //debug.warn("{}\n", id); 25 //debug.warn("{}\n", id2); 26 for (id) |char, x| { 27 if (char == id2[x]) { 28 debug.warn("{c}", char); 29 } 30 } 31 debug.warn("\n"); 32 33 break; 34 } 35 } 36 } 37 } 38 } 39 40 test "common chars" { 41 const ids = [] const [] const u8 { 42 "abcde", 43 "fghij", 44 "klmno", 45 "pqrst", 46 "fguij", 47 "axcye", 48 "wvxyz", 49 }; 50 common_chars(ids); 51 } 52 53 const input_02 = [] const [] const u8 { 54 "luojygedpvsthptkxiwnaorzmq", 55 "lucjqgedppsbhftkxiwnaorlmq", 56 "lucjmgefpvsbhftkxiwnaorziq", 57 "lucjvgedpvsbxftkxiwpaorzmq", 58 "lrcjygedjvmbhftkxiwnaorzmq", 59 "lucjygedpvsbhftkxiwnootzmu", 60 "eucjygedpvsbhftbxiwnaorzfq", 61 "lulnygedpvsbhftkxrwnaorzmq", 62 "lucsygedpvsohftkxqwnaorzmq", 63 "lucjyaedpvsnhftkxiwnaorzyq", 64 "lunjygedpvsohftkxiwnaorzmb", 65 "lucjxgedpvsbhrtkxiwnamrzmq", 66 "lucjygevpvsbhftkxcwnaorzma", 67 "lucjbgedpvsbhftrxiwnaoazmq", 68 "llcjygkdpvhbhftkxiwnaorzmq", 69 "lmcjygxdpvsbhftkxswnaorzmq", 70 "lucpygedpvsbhftkxiwraorzmc", 71 "lucjbgrdpvsblftkxiwnaorzmq", 72 "lucjfgedpvsbhftkxiwnaurzmv", 73 "lucjygenpvsbhytkxiwnaorgmq", 74 "luqjyredsvsbhftkxiwnaorzmq", 75 "lucjygedpvavhftkxiwnaorumq", 76 "gucjygedpvsbhkxkxiwnaorzmq", 77 "lucjygedpvsbhftkxlwnaordcq", 78 "lucjygedpvibhfqkxiwnaorzmm", 79 "lucjegedpvsbaftkxewnaorzmq", 80 "kucjygeqpvsbhfokxiwnaorzmq", 81 "lugjygedwvsbhftkxiwnatrzmq", 82 "lucjygedqvsbhftdxiwnayrzmq", 83 "lucjygekpvsbuftkxiwnaqrzmq", 84 "lucjygedpvsbhfbkxiwnaoozdq", 85 "lscjygedpvzchftkxiwnaorzmq", 86 "luckygedpvsbxftkxiwnaorvmq", 87 "luyjygedgvsbhptkxiwnaorzmq", 88 "lmcjygedpvsbhfckxiwnaodzmq", 89 "lucmygedwvybhftkxiwnaorzmq", 90 "lgcjhgedavsbhftkxiwnaorzmq", 91 "lucjugedpvsbhftkxiwmaoozmq", 92 "lucjygedpvybhftkxkwnaorumq", 93 "lucjygedpvzbhfakxiwnaorzpq", 94 "lucjygedpvsbhftyxzwnajrzmq", 95 "lucjygedpvsdhfakxiwnoorzmq", 96 "luyjygeopvhbhftkxiwnaorzmq", 97 "lucjygadpvsbhntkxiwnaorzmx", 98 "lucjygedzvsbhftkiiwuaorzmq", 99 "sucjygodpvsbhftkxiwuaorzmq", 100 "euijygydpvsbhftkxiwnaorzmq", 101 "lucjlgeduvsbhftkxicnaorzmq", 102 "lucjdgedpvsbhfgkxiwnhorzmq", 103 "lucjymedpvsbhotkxiqnaorzmq", 104 "lucjygmdpvsbhftkxywnairzmq", 105 "lucjggedpvsbhfxkxiqnaorzmq", 106 "sucjygedpvsbhftkxiwnaorjmv", 107 "lucjlgedpvsbhftkxiwnairzmg", 108 "lucjygedppubhftkxijnaorzmq", 109 "lucjyxedpvsvhftkxlwnaorzmq", 110 "lucjygedpvxbhftkfiwyaorzmq", 111 "lucjygedposbhftkniwnaorzmw", 112 "lucjygewpvsbhftgxiwnavrzmq", 113 "lucjynedpvsbmftkaiwnaorzmq", 114 "lucjyhedpvzbhftkxiwncorzmq", 115 "lucjygedpvsbhfikpiwnaoezmq", 116 "lupjypedpvsbhftkjiwnaorzmq", 117 "lucjygudpvsbhfwkxivnaorzmq", 118 "lucjygrdpvsbhatkxzwnaorzmq", 119 "lucjbgmdpvsbhftkxihnaorzmq", 120 "lucjmgedpvpbhftkxiwnaorcmq", 121 "lucjygedpvskhfukmiwnaorzmq", 122 "lucjygedgvsbhftkxiwnvprzmq", 123 "lucjzgedppsbhytkxiwnaorzmq", 124 "lfcjypedpvsbhftrxiwnaorzmq", 125 "lucjyqldphsbhftkxiwnaorzmq", 126 "lucjygedpvsbhftzxewnaorzqq", 127 "lucjygeapvsbhftkxiinoorzmq", 128 "lucjygedpvszhftguiwnaorzmq", 129 "luojygedpvsbhftkxawnaornmq", 130 "lucjygedpcsboetkxiwnaorzmq", 131 "lufjygedpvfbhftaxiwnaorzmq", 132 "luciygedpvsbhftkxhwaaorzmq", 133 "lucjygedpvnbhftkaiwnaorzmc", 134 "lucjygedpvsbhftkxiwcaorbdq", 135 "lucjygelpvsbhftaxiwsaorzmq", 136 "lujjygedpssbhftkxiwnaorzmr", 137 "ludjygedpvsbhftkxiynaorzmj", 138 "lukjygeedvsbhftkxiwnaorzmq", 139 "lucjqpedpvsbhftkxiwnaozzmq", 140 "jucjygedpvsbhftkxgwnaorqmq", 141 "llwjygedpvsbhetkxiwnaorzmq", 142 "rucjygedpvsbhftkxiwndorymq", 143 "lucjygedpvsbhftvxswnaorwmq", 144 "lucjygerpvsbhfykxiwnaormmq", 145 "lucjynedpvsbhftkxijnaorziq", 146 "ljcjygedpvrbhftkeiwnaorzmq", 147 "lucjygedpnsbhftkxiwhaornmq", 148 "lucjygadpvsbhftkxibnaorzqq", 149 "lucjqgedpvsihftkxiwnaorzdq", 150 "lucjygedpvsqhfttjiwnaorzmq", 151 "llcjygedsvsbhftkxiwwaorzmq", 152 "lfckygedpvsbhftkxiunaorzmq", 153 "lucjyeedpdsbhftkxiwnaotzmq", 154 "lucjygedpvsbhftkoiwnaoqzcq", 155 "huwjvgedpvsbhftkxiwnaorzmq", 156 "lucjygldpvsbdhtkxiwnaorzmq", 157 "lycxygedpvsbhftmxiwnaorzmq", 158 "lucjygedpvsbhftyxianvorzmq", 159 "lucuygedpdsbhqtkxiwnaorzmq", 160 "lucjyggdpvsbhftkxiwnavremq", 161 "lucjyggdpvsbkftkxiwnaorbmq", 162 "luchyqedpvsbhftixiwnaorzmq", 163 "lpcnygedpvsbhftkxzwnaorzmq", 164 "lucjygedpvsihftkxiwfaortmq", 165 "lucjygvdpvsbhgtkxiwnamrzmq", 166 "lucjygodpvrbhqtkxiwnaorzmq", 167 "lucjygedpfsbhftkxipnaorzma", 168 "lucjygedpvsbhftkxpcjaorzmq", 169 "lucjygodbmsbhftkxiwnaorzmq", 170 "lucjygedpvsbhftkxipnaogzmb", 171 "luxjygjdpvsbhltkxiwnaorzmq", 172 "lucxygedpvsbhftkxzwnaorjmq", 173 "luajygedpvsbhftzxiwaaorzmq", 174 "lhcjygedpvsqhftfxiwnaorzmq", 175 "lucjygecphsbhftkxiwnaprzmq", 176 "lucjygedpvsbhptkxifnaorqmq", 177 "lucjygedpvichftkpiwnaorzmq", 178 "lucjygedpcsbhstkxswnaorzmq", 179 "kucjygedpvsbhftkxiwbyorzmq", 180 "lfpjxgedpvsbhftkxiwnaorzmq", 181 "lucjytldpvsbhftkxiwdaorzmq", 182 "lufjygedpvfbhftbxiwnaorzmq", 183 "lucjygebpvgbhftkxipnaorzmq", 184 "luujygedpvdbhftkxiwnaorzmd", 185 "lucjygedpvsbhfbyxwwnaorzmq", 186 "lucjygedpvsbhftkxiwnaoqpmw", 187 "qucgygedpvsbhftkxiwnaortmq", 188 "ludjtgedpvsbhftkxiunaorzmq", 189 "lucjyiedovsbhftkxiwjaorzmq", 190 "lucjygedpysbjftoxiwnaorzmq", 191 "lumjygedpvsbuftkxiknaorzmq", 192 "lucjygedpvsbhfokxgonaorzmq", 193 "lucjygeqpvsbhftkfiwnaorzeq", 194 "lucjygedpvskhftkxiwntorkmq", 195 "luujygedpvsbhftkxiwraorzmt", 196 "lucwygedpvsbjftkxiwnaorzmj", 197 "jucjyfedcvsbhftkxiwnaorzmq", 198 "luujygedpnsehftkxiwnaorzmq", 199 "lucjygedpvszhfckxiwnaorzmi", 200 "lucjyredpvsbzftkpiwnaorzmq", 201 "lucjygedpvsbwfgkxiwnaorzoq", 202 "lucjygedpvgbhftkpiwnaorzms", 203 "lucjygedpvjbhftkxzwnaoizmq", 204 "vucjycedpvsbhftkxiwfaorzmq", 205 "luawygeapvsbhftkxiwnaorzmq", 206 "lucjygetpvsbhftkxiwnaafzmq", 207 "lucjvgedpvsbhftkxywnavrzmq", 208 "luolygedpvsbgftkxiwnaorzmq", 209 "likjygedpvsbhftkxiwnabrzmq", 210 "lucjygedovsbhftkxirpaorzmq", 211 "lucjygedphsshftkxqwnaorzmq", 212 "uuqjygewpvsbhftkxiwnaorzmq", 213 "lucjygedcvsbhftkxiwoarrzmq", 214 "lucnygedpvsbhfakxiwnaorzms", 215 "lucjygedpvsbhntkxiwnawrzmb", 216 "lucjygedpvsblfxkxivnaorzmq", 217 "lucjygedpvsghftkxiwnaawzmq", 218 "yucjygedpgsbhftkxiwnaorzbq", 219 "lucjyweapvsbhftkxiwnaoezmq", 220 "lucjygevpvsbyftcxiwnaorzmq", 221 "luejygedovsbhftkxiwnqorzmq", 222 "lucjyqedpvsbhfbkxiwnaorzms", 223 "lucjypedpvsbhftwxiwnhorzmq", 224 "lucjygedpvsbhmtkviwxaorzmq", 225 "lucjogedpvpbhftkxiwnaorqmq", 226 "lucjygedpvsbhztkxkwnaoazmq", 227 "lucjyaedpvsbcftkxiwnaorzhq", 228 "lucjygbdpvkbhftkxiznaorzmq", 229 "lucpygedpvzbhftkxfwnaorzmq", 230 "lucjmgedpcsbhftkxiwnaoezmq", 231 "lucjygedyvsbbftkxiwnnorzmq", 232 "lucjyyedpvsbhftuxiwnaonzmq", 233 "lucjygfdpvsbhutkxiwnaorzmt", 234 "uccjygedpvschftkxiwnaorzmq", 235 "lusjygedpvbbhqtkxiwnaorzmq", 236 "ducuygedpvsbhftkxiwnaorzyq", 237 "lucjygkdvwsbhftkxiwnaorzmq", 238 "cucjyyedpvsbhftkxiwnaerzmq", 239 "lucjygedavsbhftkxiwnkorzbq", 240 "lucjygedmvsyhftkxiwiaorzmq", 241 "lucjygeipvsbhfpkxiwnaorzpq", 242 "vucjugedvvsbhftkxiwnaorzmq", 243 "lucjyzedpvsbhftkxpwnaoozmq", 244 "lucjygedpvgbhftkxiwtaorzqq", 245 "lecjygedpvcwhftkxiwnaorzmq", 246 "lucjyghdpvsbhfcyxiwnaorzmq", 247 "lucjygedpvesqftkxiwnaorzmq", 248 "lucjyjehpvsbhftbxiwnaorzmq", 249 "lucjygedpvtbhdtkxignaorzmq", 250 "lucjygxdpgsbhftkxivnaorzmq", 251 "lucjygvdpvsbhftkpiwnaorzqq", 252 "lucjysedpvsbhftkxiwnalrzmc", 253 "lucjygedpvkbhjtkxiwnaorsmq", 254 "lucjygedpvsbvfgkxiwnaerzmq", 255 "lucjygedpvsihftkxilnaorzmu", 256 "lvcvygndpvsbhftkxiwnaorzmq", 257 "lucjysedpqsbhftkxiwnaordmq", 258 "lucsygeypvsbhftkwiwnaorzmq", 259 "lucjygewpotbhftkxiwnaorzmq", 260 "lucjysedpvsbhftkxiwnanrzmv", 261 "lucjygedpvsbhutkxiwnaoplmq", 262 "wucjygedpvsqbftkxiwnaorzmq", 263 "lacjygeepvsbhftkxiwnjorzmq", 264 "lucjygedpusyhftkxicnaorzmq", 265 "qucjyredpvsbhftkxiwnworzmq", 266 "lucjygedevsbhftkgiwnayrzmq", 267 "lucjygedpksbrftkliwnaorzmq", 268 "lucjygedpvsbhfgkxisnaorzeq", 269 "lucjygedpvhdhftkeiwnaorzmq", 270 "lucjsgedpvsboftkxiwnaorumq", 271 "luctygedpvsbhftouiwnaorzmq", 272 "lucjygedpvsjhfukjiwnaorzmq", 273 "lucjagrepvsbhftkxiwnaorzmq", 274 "lucjkgerpvsbhftkxiwnairzmq", 275 "turjygedpvsbnftkxiwnaorzmq", 276 "lbcjygedpvsbhftkdpwnaorzmq", 277 "lucpygedpvsbhftkxnwnoorzmq", 278 "jucjygedpvsbhbtkxicnaorzmq", 279 "lecjygedpvsbhftkriwnaogzmq", 280 "licjyvcdpvsbhftkxiwnaorzmq", 281 "lrcjygewpnsbhftkxiwnaorzmq", 282 "ltcxygedpvlbhftkxiwnaorzmq", 283 "luctygedpvhbhztkxiwnaorzmq", 284 "lucwygedplsbhfakxiwnaorzmq", 285 "lucjygedpnsbhftkxiwjaoezmq", 286 "lucpygedptsbhftkxiwnaorzmo", 287 "lucjygedpvibhqtkxiknaorzmq", 288 "lucjwgqdpvrbhftkxiwnaorzmq", 289 "lucjmgkdpvsbhftkxiwraorzmq", 290 "lucjygwupvsbhftkxiznaorzmq", 291 "lucjhgedpvobhftkxiwncorzmq", 292 "lucjygedpvsbhftkxiwnaohtmj", 293 "lucjygedpvsbeftkfiwnaorzyq", 294 "lucjygcdpvsbpftkhiwnaorzmq", 295 "lucjygedpmsbhftkxiwnkouzmq", 296 "oucjygedpvsbyftkximnaorzmq", 297 "lucjcgedpvsbhftkxywnforzmq", 298 "lfcjygedfvsbdftkxiwnaorzmq", 299 "ducjygedevsbhfttxiwnaorzmq", 300 "ldcjdgedpvsbhftkxiwnavrzmq", 301 "lucjymedmvsbhqtkxiwnaorzmq", 302 "lucjygedpvabhftkxiwnasrlmq", 303 "lucjygefpvsbhftkxmwnaorkmq", 304 };