summaryrefslogtreecommitdiff
path: root/22.13/main.py
diff options
context:
space:
mode:
Diffstat (limited to '22.13/main.py')
-rw-r--r--22.13/main.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/22.13/main.py b/22.13/main.py
new file mode 100644
index 0000000..25b09a1
--- /dev/null
+++ b/22.13/main.py
@@ -0,0 +1,30 @@
+import json
+import sys
+
+lines = [json.loads(s) for s in sys.stdin.readlines() if s.strip()]
+
+def cmp(a, b):
+ def tolist(v):
+ return v if type(v) == list else [v]
+ i = 0
+ while True:
+ if len(a) <= i and len(b) <= i: return 0
+ if len(a) <= i: return -1
+ if len(b) <= i: return 1
+ x = a[i]
+ y = b[i]
+ if type(x) == int and type(y) == int:
+ if x < y: return -1
+ if x > y: return 1
+ else:
+ r = cmp(tolist(x), tolist(y))
+ if r != 0: return r
+ i += 1
+
+partOne = 0
+for i in range(0, len(lines), 2):
+ a = lines[i]
+ b = lines[i+1]
+ if cmp(a,b) != 1:
+ partOne += i//2+1
+print(partOne)