Unified · Split
| @@ -0,0 +1 @@ | |||
| 1 | BEGIN{FS=""}{for(k=1;k<=NF;k++)b[k,$k]++}END{for(i=1;i<k;i++)for(t=0;t<2;t++)x[t]=x[t]*2+(b[i,0]>b[i,1])-t;print-x[0]*x[1]} | ||
| @@ -0,0 +1,10 @@ | |||
| 1 | BEGIN{q["m"]=q["l"]=FS=""} | ||
| 2 | {x=0;for(k=1;k<=NF;k++)w["m"NR]=w["l"NR]=x=x*2+(b["m"NR,k]=b["l"NR,k]=!!$k)} | ||
| 3 | END{ | ||
| 4 | for(i=1;i<k;i++)for(p in q){ | ||
| 5 | delete r;y=n=0; | ||
| 6 | for(j in w)if(j~p){y+=r[j]=b[j,i];n++} | ||
| 7 | if(n>1)for(j in r)if(r[j]!=(p~"m"?y*2>=n:y*2<n))delete w[j] | ||
| 8 | } | ||
| 9 | x=1;for(t in w)x*=w[t];print x | ||
| 10 | } | ||
| @@ -7,8 +7,14 @@ Advent of code with AWK · 6 unmodified lines | |||
| 7 | ## Stats | 7 | ## Stats |
| 8 | 8 | ||
| 9 | ; wc -c 2021/*.awk | 9 | ; wc -c 2021/*.awk |
| 10 | 30 2021/01-01.awk | 10 | 30 2021/01-01.awk |
| 11 | 59 2021/01-02.awk | 11 | 59 2021/01-02.awk |
| 12 | 45 2021/02-01.awk | 12 | 45 2021/02-01.awk |
| 13 | 53 2021/02-02.awk | 13 | 53 2021/02-02.awk |
| 14 | 187 total | 14 | 124 2021/03-01.awk |
| 15 | 297 2021/03-02.awk | ||
| 16 | 608 total | ||
| 17 | |||
| 18 | Formatting is left as an exercise for the reader. | ||
| 19 | |||
| 20 | Enjoy. Or not. | ||