Skip to content

Instantly share code, notes, and snippets.

@alex-dixon
Created December 3, 2018 01:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alex-dixon/006a72368b946c7f7edeb7185e0814f0 to your computer and use it in GitHub Desktop.
Save alex-dixon/006a72368b946c7f7edeb7185e0814f0 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
(def input "+12\n-13\n+17\n+17\n-10\n+6\n+13\n+13\n-9\n+13\n-15\n+16\n+12\n-19\n-15\n-11\n+16\n-4\n+9\n+9\n+4\n+8\n+19\n-15\n-10\n+4\n-2\n+17\n-4\n+7\n+15\n+8\n+10\n-13\n+11\n+12\n-4\n-7\n+3\n-6\n-8\n+19\n+10\n+14\n+7\n-3\n-19\n+16\n+17\n+15\n-18\n+19\n+11\n-7\n+10\n-17\n+11\n-20\n+4\n+9\n-11\n-12\n+9\n-13\n+2\n-12\n-1\n+17\n+15\n+10\n+14\n-7\n-5\n-13\n-19\n-6\n+13\n-14\n-18\n+4\n+6\n-4\n+5\n+18\n+23\n-6\n+13\n+17\n+4\n+16\n-18\n-6\n-9\n+11\n+7\n+12\n+10\n-16\n-10\n+12\n+10\n-2\n+16\n+10\n-7\n-11\n+3\n+9\n-16\n-9\n+10\n+2\n+15\n-4\n-6\n+12\n+5\n+5\n+19\n-18\n-4\n+14\n-2\n-4\n+18\n-15\n-10\n+5\n+17\n+15\n-9\n-5\n+9\n+1\n+9\n+14\n+15\n+11\n-16\n+15\n+8\n+15\n+4\n+10\n+1\n+18\n+12\n-5\n-1\n+16\n-11\n-19\n-5\n+15\n-17\n+19\n-5\n+14\n+6\n+12\n+10\n+16\n+6\n+8\n-12\n-1\n+4\n-17\n-13\n+2\n+12\n-3\n-16\n+17\n-6\n+14\n+3\n+5\n+4\n+10\n+8\n-17\n+7\n+19\n+13\n+18\n+17\n-9\n+14\n-4\n-3\n-11\n-13\n+6\n-2\n+16\n-15\n-15\n-13\n-7\n-7\n-7\n+16\n+17\n-15\n-10\n-2\n-7\n+2\n+16\n+6\n+20\n-6\n-13\n-5\n+1\n+12\n+6\n+20\n-22\n-10\n+5\n-16\n-17\n+13\n+18\n-4\n+5\n+11\n+14\n-9\n+1\n-19\n-1\n+32\n-14\n-3\n+9\n+3\n+18\n+9\n+15\n-11\n+17\n-15\n+2\n-13\n-14\n+18\n-3\n-3\n-9\n-5\n-48\n-15\n+13\n-1\n-5\n-23\n-10\n+16\n-17\n-16\n-2\n+16\n-13\n-15\n-4\n-10\n-1\n+2\n-18\n+11\n-12\n+14\n+19\n-9\n+19\n-17\n+11\n+16\n+6\n+6\n+6\n-20\n+19\n+2\n+5\n-21\n+20\n+8\n-35\n-8\n+17\n-19\n+1\n-29\n-8\n+13\n-18\n-5\n+6\n+8\n+13\n-18\n+11\n+18\n-10\n-30\n-18\n-2\n-1\n+11\n+14\n+1\n-18\n-20\n+7\n-1\n-11\n-13\n-5\n+9\n-18\n+15\n-7\n-5\n+3\n-8\n-4\n+16\n-9\n+10\n+8\n+14\n+2\n-10\n-18\n+16\n+20\n+16\n-9\n+12\n-5\n-4\n-2\n+9\n+20\n-14\n+5\n-17\n-17\n-1\n-2\n-5\n-9\n+1\n+9\n-17\n+11\n-2\n-5\n+11\n-23\n-16\n+15\n-5\n-13\n-7\n-4\n-1\n-10\n-6\n-3\n-2\n-12\n-15\n+16\n-11\n+7\n-22\n+5\n+8\n-10\n-13\n-19\n+23\n+3\n-12\n-10\n-19\n+26\n-1\n-1\n+19\n+2\n+26\n-18\n-23\n+20\n+27\n+20\n+7\n+8\n+11\n-34\n+19\n+11\n-14\n+13\n-39\n+5\n+31\n-21\n+12\n-6\n+40\n-16\n-51\n+23\n-31\n-33\n-5\n-20\n+5\n-10\n-10\n-18\n-8\n-17\n-12\n-14\n-16\n+10\n+12\n+19\n-15\n-11\n+5\n-7\n-14\n+4\n+18\n-4\n-9\n-15\n+21\n-20\n-7\n-17\n+26\n-6\n-5\n+17\n+21\n+11\n+21\n-9\n-15\n+17\n+16\n-13\n-23\n+1\n+9\n-20\n-12\n-11\n+3\n+13\n+21\n-20\n-3\n+31\n+21\n-11\n-1\n+8\n-12\n+15\n+28\n+3\n-18\n+6\n-5\n+13\n+48\n-152\n-14\n+20\n-12\n-4\n-2\n-136\n+26\n-87\n-21\n+23\n-15\n+8\n+2\n-12\n+37\n+43\n-342\n+328\n+120\n-72629\n-10\n-10\n+4\n-11\n-16\n-18\n+5\n-6\n+9\n+6\n+12\n-5\n+2\n-14\n+4\n+16\n-18\n-19\n-2\n+6\n-17\n+6\n+13\n-18\n-5\n+20\n-9\n-5\n+7\n-15\n+9\n+19\n+14\n+16\n-1\n-18\n-19\n-15\n+6\n-12\n-18\n-9\n+11\n+10\n+5\n-16\n-18\n+13\n+14\n-16\n+1\n+8\n-16\n-11\n-17\n-18\n+1\n-8\n+13\n-9\n+14\n+3\n-1\n+15\n+11\n+17\n-9\n+16\n+9\n+16\n-23\n+14\n-15\n-12\n+5\n+18\n+17\n+16\n+4\n+9\n+19\n-8\n+10\n+17\n+3\n-1\n-1\n-7\n-9\n-6\n-16\n+5\n+2\n+4\n-3\n+17\n+23\n+2\n-29\n+2\n+4\n+8\n-2\n+32\n-22\n+16\n-66\n-16\n-26\n+9\n+20\n+5\n+4\n-17\n-20\n-6\n-17\n-14\n-14\n+3\n-7\n+17\n+4\n+8\n-10\n-8\n-15\n-3\n+9\n+1\n-18\n+16\n-3\n-12\n+11\n-6\n-1\n-18\n+4\n-11\n-21\n+8\n-14\n+4\n-3\n-7\n+11\n+4\n+10\n-4\n+13\n+9\n-7\n-18\n-5\n+14\n+10\n-9\n-9\n+13\n+16\n-3\n-6\n-17\n+16\n-15\n+12\n+12\n+10\n+19\n+7\n+9\n+6\n-16\n-9\n+8\n-3\n-4\n-18\n-15\n+11\n+41\n+14\n+38\n+13\n-28\n-15\n-98\n-12\n-9\n-2\n-18\n-1\n-5\n-3\n-3\n-5\n-18\n-14\n+17\n-4\n-14\n+6\n+7\n+4\n+15\n-8\n-3\n-9\n+15\n+7\n+8\n+3\n+3\n+10\n+11\n-6\n-2\n+15\n-3\n-18\n+10\n+1\n-14\n+10\n-3\n+1\n+11\n+6\n-34\n-15\n-17\n-1\n-6\n-11\n-17\n+5\n-18\n+12\n-5\n-8\n+11\n+14\n+5\n-10\n+7\n-12\n+8\n+10\n+3\n-15\n+13\n+3\n+9\n+14\n-20\n-8\n-16\n-20\n+8\n+2\n-1\n-7\n-7\n+2\n-15\n-7\n-2\n-8\n-14\n-10\n+4\n-19\n+14\n-17\n-17\n+7\n-19\n-10\n-10\n-12\n+7\n+14\n-10\n+12\n-10\n+1\n+6\n-15\n-12\n-14\n+5\n+19\n+14\n+1\n+15\n-6\n+3\n-5\n+13\n+7\n-8\n+18\n-16\n+4\n-1\n-14\n+18\n+19\n-17\n+12\n-10\n-3\n+9\n+10\n+18\n+11\n+5\n-9\n+16\n+1\n-2\n+10\n+1\n+12\n-19\n-12\n+6\n-7\n-3\n-18\n+12\n-11\n+10\n-1\n-1\n+8\n-11\n-2\n+12\n-23\n+2\n-17\n+19\n-16\n+5\n+6\n-19\n+9\n+14\n-20\n+23\n-5\n-3\n-4\n-22\n-1\n-16\n-20\n-14\n+7\n+2\n-11\n-2\n-18\n+2\n-4\n+17\n+8\n-20\n+2\n+19\n-14\n-15\n+17\n-6\n-2\n+5\n+18\n+1\n+6\n+7\n+17\n-7\n-18\n+15\n-6\n-2\n-10\n-11\n+28\n-21\n-13\n-32\n+4\n+6\n+3\n+2\n+21\n-16\n-22\n-1\n+12\n+17\n+14\n+46\n-6\n+2\n+3\n+19\n+6\n+15\n+7\n+20\n+21\n-7\n-1\n-15\n-3\n+9\n-3\n-12\n+19\n+16\n+12\n-5\n-13\n+15\n+15\n-4\n-18\n-1\n-5\n+2\n+18\n-2\n-11\n+16\n+7\n-15\n+16\n-22\n-6\n-6\n+13\n-19\n+52\n-5\n+7\n+5\n-11\n+8\n+21\n+20\n+18\n-11\n-1\n-15\n+3\n+16\n+17\n-19\n-11\n+28\n+29\n-8\n-18\n-6\n-20\n-6\n+21\n+26\n-5\n-14\n-13\n-10\n-25\n-2\n+16\n-3\n-19\n-7\n+17\n+71\n+26\n-40\n+129\n-441\n-12\n+16\n-166\n-10\n+2\n+13\n+22\n+29\n+14\n+22\n+57\n-83\n-82\n+18\n+73808")
(reduce (fn [a b]
(concat b (list a)))
(into []
(comp
(partition-by #(= \newline %))
(remove #(= [\newline] %))
(map (fn [[op & chars]]
(list (symbol (str op))
(Integer/parseInt (clojure.string/join chars))))))
input))
=>
(+
73808
(+
18
(-
82
(-
83
(+
57
(+
22
(+
14
(+
29
(+
22
(+
13
(+
2
(-
10
(-
166
(+
16
(-
12
(-
441
(+
129
(-
40
(+
26
(+
71
(+
17
(-
7
(-
19
(-
3
(+
16
(-
2
(-
25
(-
10
(-
13
(-
14
(-
5
(+
26
(+
21
(-
6
(-
20
(-
6
(-
18
(-
8
(+
29
(+
28
(-
11
(-
19
(+
17
(+
16
(+
3
(-
15
(-
1
(-
11
(+
18
(+
20
(+
21
(+
8
(-
11
(+
5
(+
7
(-
5
(+
52
(-
19
(+
13
(-
6
(-
6
(-
22
(+
16
(-
15
(+
7
(+
16
(-
11
(-
2
(+
18
(+
2
(-
5
(-
1
(-
18
(-
4
(+
15
(+
15
(-
13
(-
5
(+
12
(+
16
(+
19
(-
12
(-
3
(+
9
(-
3
(-
15
(-
1
(-
7
(+
21
(+
20
(+
7
(+
15
(+
6
(+
19
(+
3
(+
2
(-
6
(+
46
(+
14
(+
17
(+
12
(-
1
(-
22
(-
16
(+
21
(+
2
(+
3
(+
6
(+
4
(-
32
(-
13
(-
21
(+
28
(-
11
(-
10
(-
2
(-
6
(+
15
(-
18
(-
7
(+
17
(+
7
(+
6
(+
1
(+
18
(+
5
(-
2
(-
6
(+
17
(-
15
(-
14
(+
19
(+
2
(-
20
(+
8
(+
17
(-
4
(+
2
(-
18
(-
2
(-
11
(+
2
(+
7
(-
14
(-
20
(-
16
(-
1
(-
22
(-
4
(-
3
(-
5
(+
23
(-
20
(+
14
(+
9
(-
19
(+
6
(+
5
(-
16
(+
19
(-
17
(+
2
(-
23
(+
12
(-
2
(-
11
(+
8
(-
1
(-
1
(+
10
(-
11
(+
12
(-
18
(-
3
(-
7
(+
6
(-
12
(-
19
(+
12
(+
1
(+
10
(-
2
(+
1
(+
16
(-
9
(+
5
(+
11
(+
18
(+
10
(+
9
(-
3
(-
10
(+
12
(-
17
(+
19
(+
18
(-
14
(-
1
(+
4
(-
16
(+
18
(-
8
(+
7
(+
13
(-
5
(+
3
(-
6
(+
15
(+
1
(+
14
(+
19
(+
5
(-
14
(-
12
(-
15
(+
6
(+
1
(-
10
(+
12
(-
10
(+
14
(+
7
(-
12
(-
10
(-
10
(-
19
(+
7
(-
17
(-
17
(+
14
(-
19
(+
4
(-
10
(-
14
(-
8
(-
2
(-
7
(-
15
(+
2
(-
7
(-
7
(-
1
(+
2
(+
8
(-
20
(-
16
(-
8
(-
20
(+
14
(+
9
(+
3
(+
13
(-
15
(+
3
(+
10
(+
8
(-
12
(+
7
(-
10
(+
5
(+
14
(+
11
(-
8
(-
5
(+
12
(-
18
(+
5
(-
17
(-
11
(-
6
(-
1
(-
17
(-
15
(-
34
(+
6
(+
11
(+
1
(-
3
(+
10
(-
14
(+
1
(+
10
(-
18
(-
3
(+
15
(-
2
(-
6
(+
11
(+
10
(+
3
(+
3
(+
8
(+
7
(+
15
(-
9
(-
3
(-
8
(+
15
(+
4
(+
7
(+
6
(-
14
(-
4
(+
17
(-
14
(-
18
(-
5
(-
3
(-
3
(-
5
(-
1
(-
18
(-
2
(-
9
(-
12
(-
98
(-
15
(-
28
(+
13
(+
38
(+
14
(+
41
(+
11
(-
15
(-
18
(-
4
(-
3
(+
8
(-
9
(-
16
(+
6
(+
9
(+
7
(+
19
(+
10
(+
12
(+
12
(-
15
(+
16
(-
17
(-
6
(-
3
(+
16
(+
13
(-
9
(-
9
(+
10
(+
14
(-
5
(-
18
(-
7
(+
9
(+
13
(-
4
(+
10
(+
4
(+
11
(-
7
(-
3
(+
4
(-
14
(+
8
(-
21
(-
11
(+
4
(-
18
(-
1
(-
6
(+
11
(-
12
(-
3
(+
16
(-
18
(+
1
(+
9
(-
3
(-
15
(-
8
(-
10
(+
8
(+
4
(+
17
(-
7
(+
3
(-
14
(-
14
(-
17
(-
6
(-
20
(-
17
(+
4
(+
5
(+
20
(+
9
(-
26
(-
16
(-
66
(+
16
(-
22
(+
32
(-
2
(+
8
(+
4
(+
2
(-
29
(+
2
(+
23
(+
17
(-
3
(+
4
(+
2
(+
5
(-
16
(-
6
(-
9
(-
7
(-
1
(-
1
(+
3
(+
17
(+
10
(-
8
(+
19
(+
9
(+
4
(+
16
(+
17
(+
18
(+
5
(-
12
(-
15
(+
14
(-
23
(+
16
(+
9
(+
16
(-
9
(+
17
(+
11
(+
15
(-
1
(+
3
(+
14
(-
9
(+
13
(-
8
(+
1
(-
18
(-
17
(-
11
(-
16
(+
8
(+
1
(-
16
(+
14
(+
13
(-
18
(-
16
(+
5
(+
10
(+
11
(-
9
(-
18
(-
12
(+
6
(-
15
(-
19
(-
18
(-
1
(+
16
(+
14
(+
19
(+
9
(-
15
(+
7
(-
5
(-
9
(+
20
(-
5
(-
18
(+
13
(+
6
(-
17
(+
6
(-
2
(-
19
(-
18
(+
16
(+
4
(-
14
(+
2
(-
5
(+
12
(+
6
(+
9
(-
6
(+
5
(-
18
(-
16
(-
11
(+
4
(-
10
(-
10
(-
72629
(+
120
(+
328
(-
342
(+
43
(+
37
(-
12
(+
2
(+
8
(-
15
(+
23
(-
21
(-
87
(+
26
(-
136
(-
2
(-
4
(-
12
(+
20
(-
14
(-
152
(+
48
(+
13
(-
5
(+
6
(-
18
(+
3
(+
28
(+
15
(-
12
(+
8
(-
1
(-
11
(+
21
(+
31
(-
3
(-
20
(+
21
(+
13
(+
3
(-
11
(-
12
(-
20
(+
9
(+
1
(-
23
(-
13
(+
16
(+
17
(-
15
(-
9
(+
21
(+
11
(+
21
(+
17
(-
5
(-
6
(+
26
(-
17
(-
7
(-
20
(+
21
(-
15
(-
9
(-
4
(+
18
(+
4
(-
14
(-
7
(+
5
(-
11
(-
15
(+
19
(+
12
(+
10
(-
16
(-
14
(-
12
(-
17
(-
8
(-
18
(-
10
(-
10
(+
5
(-
20
(-
5
(-
33
(-
31
(+
23
(-
51
(-
16
(+
40
(-
6
(+
12
(-
21
(+
31
(+
5
(-
39
(+
13
(-
14
(+
11
(+
19
(-
34
(+
11
(+
8
(+
7
(+
20
(+
27
(+
20
(-
23
(-
18
(+
26
(+
2
(+
19
(-
1
(-
1
(+
26
(-
19
(-
10
(-
12
(+
3
(+
23
(-
19
(-
13
(-
10
(+
8
(+
5
(-
22
(+
7
(-
11
(+
16
(-
15
(-
12
(-
2
(-
3
(-
6
(-
10
(-
1
(-
4
(-
7
(-
13
(-
5
(+
15
(-
16
(-
23
(+
11
(-
5
(-
2
(+
11
(-
17
(+
9
(+
1
(-
9
(-
5
(-
2
(-
1
(-
17
(-
17
(+
5
(-
14
(+
20
(+
9
(-
2
(-
4
(-
5
(+
12
(-
9
(+
16
(+
20
(+
16
(-
18
(-
10
(+
2
(+
14
(+
8
(+
10
(-
9
(+
16
(-
4
(-
8
(+
3
(-
5
(-
7
(+
15
(-
18
(+
9
(-
5
(-
13
(-
11
(-
1
(+
7
(-
20
(-
18
(+
1
(+
14
(+
11
(-
1
(-
2
(-
18
(-
30
(-
10
(+
18
(+
11
(-
18
(+
13
(+
8
(+
6
(-
5
(-
18
(+
13
(-
8
(-
29
(+
1
(-
19
(+
17
(-
8
(-
35
(+
8
(+
20
(-
21
(+
5
(+
2
(+
19
(-
20
(+
6
(+
6
(+
6
(+
16
(+
11
(-
17
(+
19
(-
9
(+
19
(+
14
(-
12
(+
11
(-
18
(+
2
(-
1
(-
10
(-
4
(-
15
(-
13
(+
16
(-
2
(-
16
(-
17
(+
16
(-
10
(-
23
(-
5
(-
1
(+
13
(-
15
(-
48
(-
5
(-
9
(-
3
(-
3
(+
18
(-
14
(-
13
(+
2
(-
15
(+
17
(-
11
(+
15
(+
9
(+
18
(+
3
(+
9
(-
3
(-
14
(+
32
(-
1
(-
19
(+
1
(-
9
(+
14
(+
11
(+
5
(-
4
(+
18
(+
13
(-
17
(-
16
(+
5
(-
10
(-
22
(+
20
(+
6
(+
12
(+
1
(-
5
(-
13
(-
6
(+
20
(+
6
(+
16
(+
2
(-
7
(-
2
(-
10
(-
15
(+
17
(+
16
(-
7
(-
7
(-
7
(-
13
(-
15
(-
15
(+
16
(-
2
(+
6
(-
13
(-
11
(-
3
(-
4
(+
14
(-
9
(+
17
(+
18
(+
13
(+
19
(+
7
(-
17
(+
8
(+
10
(+
4
(+
5
(+
3
(+
14
(-
6
(+
17
(-
16
(-
3
(+
12
(+
2
(-
13
(-
17
(+
4
(-
1
(-
12
(+
8
(+
6
(+
16
(+
10
(+
12
(+
6
(+
14
(-
5
(+
19
(-
17
(+
15
(-
5
(-
19
(-
11
(+
16
(-
1
(-
5
(+
12
(+
18
(+
1
(+
10
(+
4
(+
15
(+
8
(+
15
(-
16
(+
11
(+
15
(+
14
(+
9
(+
1
(+
9
(-
5
(-
9
(+
15
(+
17
(+
5
(-
10
(-
15
(+
18
(-
4
(-
2
(+
14
(-
4
(-
18
(+
19
(+
5
(+
5
(+
12
(-
6
(-
4
(+
15
(+
2
(+
10
(-
9
(-
16
(+
9
(+
3
(-
11
(-
7
(+
10
(+
16
(-
2
(+
10
(+
12
(-
10
(-
16
(+
10
(+
12
(+
7
(+
11
(-
9
(-
6
(-
18
(+
16
(+
4
(+
17
(+
13
(-
6
(+
23
(+
18
(+
5
(-
4
(+
6
(+
4
(-
18
(-
14
(+
13
(-
6
(-
19
(-
13
(-
5
(-
7
(+
14
(+
10
(+
15
(+
17
(-
1
(-
12
(+
2
(-
13
(+
9
(-
12
(-
11
(+
9
(+
4
(-
20
(+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment