advent-of-code

Solutions for Advent of Code.
git clone git://git.amin.space/advent-of-code.git
Log | Files | Refs | LICENSE

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 };