From 82def2ae0b5f0b936e2a4c6141e0da9a6a0c45c1 Mon Sep 17 00:00:00 2001 From: sejo Date: Mon, 20 Dec 2021 23:05:17 -0600 Subject: [PATCH] starting day 19 --- 19/19.awk | 44 ++++++++++++++++++++++++++++++++++++++++++++ 19/Makefile | 14 ++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 19/19.awk create mode 100644 19/Makefile diff --git a/19/19.awk b/19/19.awk new file mode 100644 index 0000000..72e6314 --- /dev/null +++ b/19/19.awk @@ -0,0 +1,44 @@ +function abs(n){ + return (n>=0) ? n : -n +} + +function diff(s1, s2){ + split(s1,a1,",") + split(s2,a2,",") + sr = "" + for(i in a1) + sr = sr abs(a1[i]-a2[i]) (i<3? "," : "") + return sr +} + +function similar(d1, d2){ + split(d1,a1,",") + split(d2,a2,",") + if(a1[1]==a2[1] && a1[2]==a2[2] && a1[3]==a2[3]) return 1 + if(a1[1]==a2[1] && a1[2]==a2[3] && a1[3]==a2[2]) return 2 + if(a1[1]==a2[2] && a1[2]==a2[1] && a1[3]==a2[3]) return 3 + if(a1[1]==a2[2] && a1[2]==a2[3] && a1[3]==a2[1]) return 4 + if(a1[1]==a2[3] && a1[2]==a2[1] && a1[3]==a2[2]) return 5 + if(a1[1]==a2[3] && a1[2]==a2[2] && a1[3]==a2[1]) return 6 + return -1 +} + +BEGIN{ + +} +NR%2==1{ + s1 = $0 + next +} + +{ + r = diff(s1,$0) + diffs[++diffsp] = r +} + +END{ + print diffsp + for(i=1; i test