day 4 ivy
parent
e7afa95c6d
commit
d6333ce7e8
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,20 @@
|
|||
|
||||
sample = 6 4 rho 2 4 6 8 2 3 4 5 5 7 7 9 2 8 3 7 6 6 4 6 2 6 4 8
|
||||
) get "input.ivy"
|
||||
|
||||
op r overlaps s = not (r[2] < s[1]) or (s[2] < r[1])
|
||||
op r contains s = (r[1] <= s[1]) and (s[2] <= r[2])
|
||||
|
||||
op contains x = (x[1 2] contains x[3 4]) or (x[3 4] contains x[1 2])
|
||||
op overlaps x = (x[1 2] overlaps x[3 4])
|
||||
|
||||
#1 3 overlaps 4 5
|
||||
#1 5 overlaps 2 7
|
||||
#contains 1 2 3 4
|
||||
#contains 5 10 7 8
|
||||
|
||||
+/ contains transp sample
|
||||
+/ contains transp input
|
||||
|
||||
+/ overlaps transp sample
|
||||
+/ overlaps transp input
|
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Converts a text file containing a list of integers
|
||||
into a format that can be loaded by ivy.
|
||||
"""
|
||||
|
||||
with open("input") as f:
|
||||
lines = f.read().splitlines()
|
||||
|
||||
data = []
|
||||
for line in lines:
|
||||
line = line.replace("-", ",")
|
||||
data.append(line.split(","))
|
||||
|
||||
def count(row):
|
||||
n = 0
|
||||
for x in row:
|
||||
if x.isdigit():
|
||||
n += 1
|
||||
else:
|
||||
n += len(x)
|
||||
return n
|
||||
|
||||
cols = max(map(count, data))
|
||||
|
||||
print("input = {} {} rho".format(len(data), cols), end="")
|
||||
for row in data:
|
||||
print("", " ".join(
|
||||
x if x.isdigit() else repr(x)
|
||||
for x in row), end="")
|
||||
n = count(row)
|
||||
if n < cols:
|
||||
print(" 0" * (cols - n), end="")
|
Loading…
Reference in New Issue