day 5: should have gone for python for both part
This commit is contained in:
parent
1153fac5fe
commit
97c949ed32
|
@ -0,0 +1,29 @@
|
|||
NR == FNR {
|
||||
# 47|53
|
||||
#print $0, $1, "before", $2
|
||||
O[$1] = O[$1] $2 ","
|
||||
next
|
||||
}
|
||||
|
||||
{
|
||||
correct = 1
|
||||
for (i=2;i<=NF;i++) {
|
||||
if ($i in O)
|
||||
split(O[$i],A,",")
|
||||
for(j=1;j<i;j++) {
|
||||
if ($i in O) {
|
||||
if (index(O[$i],$j",")) {
|
||||
correct = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!correct) {
|
||||
print
|
||||
}
|
||||
S += correct * $((NF+1)/2)
|
||||
}
|
||||
|
||||
END {
|
||||
print S > "/dev/stderr"
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
import sys
|
||||
from collections import defaultdict as dd
|
||||
from functools import cmp_to_key as ck
|
||||
|
||||
# load rules
|
||||
R = dd(list)
|
||||
L = open("orders","rt").read().strip().split("\n")
|
||||
for l in L:
|
||||
[a,b] = l.split("|")
|
||||
R[int(a)].append(int(b))
|
||||
|
||||
|
||||
def order(a,b):
|
||||
if a in R:
|
||||
for i in R[a]:
|
||||
if (i==b):
|
||||
return -1
|
||||
return 1
|
||||
|
||||
S = 0
|
||||
# load incorrect lines
|
||||
I = open("input2","rt").read().strip().split("\n")
|
||||
for l in I:
|
||||
# sort line
|
||||
l = map(int,l.split(","))
|
||||
l = sorted(l, key=ck(order))
|
||||
# take middle
|
||||
S += l[(len(l)+1)//2 -1]
|
||||
print(S)
|
||||
|
Loading…
Reference in New Issue