Fixed typo
[advent-of-code-15.git] / advent01.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 2,
6 "metadata": {
7 "collapsed": false,
8 "scrolled": true
9 },
10 "outputs": [
11 {
12 "data": {
13 "text/plain": [
14 "'()(((()))(()()()((((()(((())(()(()((((((()(()(((())))((()(((()))((())(()((()()()()(((())(((((((())))()()(()(()(())(((((()()()((())(((((()()))))()(())(((())(())((((((())())))(()())))()))))()())()())((()()((()()()()(()((((((((()()())((()()(((((()(((())((())(()))()((((()((((((((())()((()())(())((()))())((((()())(((((((((((()()(((((()(()))())(((()(()))())((()(()())())())(()(((())(())())()()(()(()((()))((()))))((((()(((()))))((((()(()(()())())()(((()((((())((((()(((()()(())()()()())((()((((((()((()()))()((()))()(()()((())))(((()(((()))((()((()(()))(((()()(()(()()()))))()()(((()(((())())))))((()(((())()(()(())((()())))((((())))(()(()(()())()((()())))(((()((()(())()()((()((())(()()((())(())()))()))((()(())()))())(((((((()(()()(()(())())))))))(()((((((())((((())((())())(()()))))()(())(()())()())((())(()))))(()))(()((()))()(()((((((()()()()((((((((()(()(())((()()(()()))(())()())()((())))()))()())(((()))(())()(())()))()((()((()(()()())(())()()()((())())))((()()(()()((()(())()()())(((()(()()))))(())))(()(()())()))()()))))))()))))((((((())))())))(()(())())(()())))))(()))()))))))()((()))))()))))(()(()((()())())(()()))))(((())()))())())())(((()(()()))(())()(())(())((((((()()))))((()(()))))))(()))())(((()()(()))()())()()()())))))))))))))(())(()))(()))((()(())(()())(())())(()())(())()()(()())))()()()))(())())()))())())(())((())))))))(())))(())))))()))))((())(()(((()))))(()))()((()(())))(()())(((((()))()())()()))))()))))()))())(()(()()()))()))))))((()))))))))))()((()))((()(())((())()()(()()))()(()))))()()(()))()))(((())))(())()((())(())(()())()())())))))))())))()((())))()))(()))()()))(((((((()))())(()()))(()()(()))()(()((()())()))))))(((()()()())))(())()))()())(()()))()()))))))))(())))()))()()))))))()))()())))()(())(())))))()(())()()(()()))))())((()))))()))))(()(((((()))))))))())))())()(())()()))))(())))())()()())()()())()(()))))()))()))))))))())))((()))()))()))())))()())()()())))())))(()((())()((()))())))))())()(())((())))))))))))())()())(())())())(()))(()))()))())(()(())())()())()()(()))))(()(())))))))(())))())(())))))))())()()(())())())))(())))))()))()(()())()(()))())())))))()()(()))()))))())))))))))()))))()))))))())()())()()))))()())))())))))))))))()()))))()()(((()))()()(())()))))((()))))(()))(())())))(())()))))))(()))()))))(())())))))()))(()())))))))))))))())))))))))()((()())(()())))))))((()))))(())(())))()(()())())))())())(()()()())))()))))))())))))())()()())))))))))))()()(()))))()())()))((()())(()))))()(()))))))))))()())())(((())(()))))())()))()))()))))))()))))))(()))))()))))()(())))(())))(()))())()()(()()))()))(()()))))))))()))(()))())(()()(()(()())()()))()))))))))(())))))((()()(()))())())))))()))())(()())()()))())))()(()()()()))((())())))())()(()()))()))))))))(()))(())))()))))(()(()())(()))))()())())()))()()))())))))))))))())()))))))()))))))))())))))()))))())(()())))(())()))())())))))()()(()()())(()())))()()))(((()))(()()()))))()))))()))))((())))()((((((()()))))))())))))))))))(((()))))))))))))(())())))))())(()))))))(()))((()))())))()(()((()))()))()))))))))))())()))()(()()))))())))())(())()(()))()))())(()))()))))(()()))()()(())))))()))(())(()(()()))(()()())))))(((()))))))()))))))))))))(())(()))))()())())()()((()()))())))))(()))))())))))))()()()))))))))())))()(((()()))(())))))(((())())))))((()))()(()))(()))))(()())))(()))())))))()))))(())(())))()((()))(())())))()()))()))))))))()))(()()()(()()()(()))())(())()())(((()))(())))))))))(((()())))()()))))))))()(())(()))()((((())(())(()())))()))(((())()()()))((()))(()))())())))())))(()))())()())())(()(())())()()()(())))())(())))(())))(())()))()))(()((()))))))))())(()))))))())(()()))()()))()(()(()())))()()(()((()((((((()))(())))()()()))())()))((()()(()))())((()(()(()))(()()))))()())))()))()())))))))()()((()())(())))()))(()))(())(()))())(()(())))()()))))))(((()(((()()))()(()(())())((()()))()))()))()))()(()()()(()))((()())()(())))()()))(((())()()())(())()((()()()()(()(())(()()))()(((((()())))((())))))(()()()))))(((()(())))()))((()((()(())()(()((())))((()())()(()))(((()())()()(()))(())(((()((()())()((())()())(((()()))((()((())(()))(()())(()()()))((()))(())(()((()()())((()))(())))(())(())(())))(()())))(((((()(()(((((()())((((()(()())(())(()()(((())((()(((()()(((()()((((((())))())(()((((((()(()))()))()()((()((()))))()(()()(()((()()))))))(((((()(((((())()()()(())())))))))()))((()()(())))(())(()()()())))))(()((((())))))))()()(((()(()(()(()(()())()()()(((((((((()()())()(()))((()()()()()(((((((()())()((())()))((((((()(()(()(()())(((()(((((((()(((())(((((((((())(())())()))((()(()))(((()()())(())(()(()()(((()(())()))())))(())((((((())(()()())()()(((()(((())(()(((())(((((((()(((((((((()))(())(()(()(()))))((()))()(())())())((()(()((()()))((()()((()(())(())(()((())(((())(((()()()((((((()()(())((((())()))))(())((()(()((())))(((((()(()()())())((())())))((())((()((()()((((((())(((()()(()())())(()(()))(()(()))())())()(((((((()(((()(())()()((())((()(()()((()(()()(((((((((((())((())((((((())((()((((()(()((((()(((((((())()((()))))())()((()((((()(()(((()((()())))(())())(((()(((())((((((()(((((((((()()(())))(()(((((()((((()())))((()((()((()(()()(((())((((((((((((()(((())(()(((((()))(()()(()()()()()()((())(((((((())(((((())))))())()(()()(()(()(((()()(((((())(()((()((()(((()()((()((((())()))()((((())(())))()())(((())(())(()()((()(((()()((((((((((()()(()())())(((((((((())((((()))()()((((())(()((((()(((())())(((((((((((()((((())))(())(()(((()(((()((())(((((()((()()(()(()()((((((()((((()((()(()((()(()((((((()))))()()(((((()((()(()(())()))(())(((((((()((((()())(()((()((()(()))())))(())((()))))(((((((()()()())(()))(()()((()())()((()((()()()(()(()()))(()())(())(((((()(((((((((((()((()(((()(((((((()()((((((()(((((()(()((()(((((())((((((()))((((())((()()((())(((())()(((((()()(((((()((()(()(((((((()(((((()((()((()((())(())((())(()))()()))(()()(()(()()(((((((()(((()(((())()(((((()((((((()())((((())()((()((()(()()())(()))((((()()((((((()((()(()(()((((()((()((())((((((()(()(())((((((()((((((((((()((())()))()(()(()(((((()()()))((())))()(()((((((((((((((()(((()((((()((())((()((()(((()()(()(((()((())(()()())))()(()(()(((((()()(()(()((((()(((((())()(()(()))(((((()()(((()()(())((((((((((((((())((())(((((((((((())()()()(())()(()(()(((((((((())(((()))(()()())(()((((()(())(((((()())(())((((((((())()((((()((((((())(()((()(())(((()((((()))(((((((((()()))((((()(())()()()(())(()((())((()()))()(((())(((((())((((((()()))(((((((((()((((((())))(((((((()((()(()(())))())(()(()))()(((((()())(()))()(()(())(((()))))())()())))(((((()))())()((()(()))))((()()()((((((()))()()((((((((())((()(()(((()(()((())((()())(()((((())(()(((()()()(()(()()))())())((((((((((())())((()))()((())(())(())))())()(()()(())))())(()))(((()(()()(((()(((())))()(((()(())()((((((())()))()))()((((((()(()(((((()())))()))))())()()(((()(((((())((()()(()((()((()(()(()(())))(()()()()((()(())(((()((()))((((()))())(())))())(()))()()()())()))(((()()())()((())))(())(()()()()(()())((()(()()((((())))((()((()(())((()(()((())()(()()(((()())()()())((()))((())(((()()(())))()()))(((()((())()(((((()())(())((())()())())((((((()(()(((((()))(()('"
15 ]
16 },
17 "execution_count": 2,
18 "metadata": {},
19 "output_type": "execute_result"
20 }
21 ],
22 "source": [
23 "pi = open('advent01.txt').read().strip()\n",
24 "pi"
25 ]
26 },
27 {
28 "cell_type": "code",
29 "execution_count": 3,
30 "metadata": {
31 "collapsed": false
32 },
33 "outputs": [
34 {
35 "data": {
36 "text/plain": [
37 "138"
38 ]
39 },
40 "execution_count": 3,
41 "metadata": {},
42 "output_type": "execute_result"
43 }
44 ],
45 "source": [
46 "len([c for c in pi if c == '(']) - len([c for c in pi if c == ')'])"
47 ]
48 },
49 {
50 "cell_type": "code",
51 "execution_count": 4,
52 "metadata": {
53 "collapsed": false,
54 "scrolled": true
55 },
56 "outputs": [
57 {
58 "data": {
59 "text/plain": [
60 "[1,\n",
61 " -1,\n",
62 " 1,\n",
63 " 1,\n",
64 " 1,\n",
65 " 1,\n",
66 " -1,\n",
67 " -1,\n",
68 " -1,\n",
69 " 1,\n",
70 " 1,\n",
71 " -1,\n",
72 " 1,\n",
73 " -1,\n",
74 " 1,\n",
75 " -1,\n",
76 " 1,\n",
77 " 1,\n",
78 " 1,\n",
79 " 1,\n",
80 " 1,\n",
81 " -1,\n",
82 " 1,\n",
83 " 1,\n",
84 " 1,\n",
85 " 1,\n",
86 " -1,\n",
87 " -1,\n",
88 " 1,\n",
89 " 1,\n",
90 " -1,\n",
91 " 1,\n",
92 " 1,\n",
93 " -1,\n",
94 " 1,\n",
95 " 1,\n",
96 " 1,\n",
97 " 1,\n",
98 " 1,\n",
99 " 1,\n",
100 " 1,\n",
101 " -1,\n",
102 " 1,\n",
103 " 1,\n",
104 " -1,\n",
105 " 1,\n",
106 " 1,\n",
107 " 1,\n",
108 " 1,\n",
109 " -1,\n",
110 " -1,\n",
111 " -1,\n",
112 " -1,\n",
113 " 1,\n",
114 " 1,\n",
115 " 1,\n",
116 " -1,\n",
117 " 1,\n",
118 " 1,\n",
119 " 1,\n",
120 " 1,\n",
121 " -1,\n",
122 " -1,\n",
123 " -1,\n",
124 " 1,\n",
125 " 1,\n",
126 " 1,\n",
127 " -1,\n",
128 " -1,\n",
129 " 1,\n",
130 " 1,\n",
131 " -1,\n",
132 " 1,\n",
133 " 1,\n",
134 " 1,\n",
135 " -1,\n",
136 " 1,\n",
137 " -1,\n",
138 " 1,\n",
139 " -1,\n",
140 " 1,\n",
141 " -1,\n",
142 " 1,\n",
143 " 1,\n",
144 " 1,\n",
145 " 1,\n",
146 " -1,\n",
147 " -1,\n",
148 " 1,\n",
149 " 1,\n",
150 " 1,\n",
151 " 1,\n",
152 " 1,\n",
153 " 1,\n",
154 " 1,\n",
155 " 1,\n",
156 " -1,\n",
157 " -1,\n",
158 " -1,\n",
159 " -1,\n",
160 " 1,\n",
161 " -1,\n",
162 " 1,\n",
163 " -1,\n",
164 " 1,\n",
165 " 1,\n",
166 " -1,\n",
167 " 1,\n",
168 " 1,\n",
169 " -1,\n",
170 " 1,\n",
171 " 1,\n",
172 " -1,\n",
173 " -1,\n",
174 " 1,\n",
175 " 1,\n",
176 " 1,\n",
177 " 1,\n",
178 " 1,\n",
179 " 1,\n",
180 " -1,\n",
181 " 1,\n",
182 " -1,\n",
183 " 1,\n",
184 " -1,\n",
185 " 1,\n",
186 " 1,\n",
187 " 1,\n",
188 " -1,\n",
189 " -1,\n",
190 " 1,\n",
191 " 1,\n",
192 " 1,\n",
193 " 1,\n",
194 " 1,\n",
195 " 1,\n",
196 " -1,\n",
197 " 1,\n",
198 " -1,\n",
199 " -1,\n",
200 " -1,\n",
201 " -1,\n",
202 " -1,\n",
203 " 1,\n",
204 " -1,\n",
205 " 1,\n",
206 " 1,\n",
207 " -1,\n",
208 " -1,\n",
209 " 1,\n",
210 " 1,\n",
211 " 1,\n",
212 " 1,\n",
213 " -1,\n",
214 " -1,\n",
215 " 1,\n",
216 " 1,\n",
217 " -1,\n",
218 " -1,\n",
219 " 1,\n",
220 " 1,\n",
221 " 1,\n",
222 " 1,\n",
223 " 1,\n",
224 " 1,\n",
225 " 1,\n",
226 " -1,\n",
227 " -1,\n",
228 " 1,\n",
229 " -1,\n",
230 " -1,\n",
231 " -1,\n",
232 " -1,\n",
233 " 1,\n",
234 " 1,\n",
235 " -1,\n",
236 " 1,\n",
237 " -1,\n",
238 " -1,\n",
239 " -1,\n",
240 " -1,\n",
241 " 1,\n",
242 " -1,\n",
243 " -1,\n",
244 " -1,\n",
245 " -1,\n",
246 " -1,\n",
247 " 1,\n",
248 " -1,\n",
249 " 1,\n",
250 " -1,\n",
251 " -1,\n",
252 " 1,\n",
253 " -1,\n",
254 " 1,\n",
255 " -1,\n",
256 " -1,\n",
257 " 1,\n",
258 " 1,\n",
259 " 1,\n",
260 " -1,\n",
261 " 1,\n",
262 " -1,\n",
263 " 1,\n",
264 " 1,\n",
265 " 1,\n",
266 " -1,\n",
267 " 1,\n",
268 " -1,\n",
269 " 1,\n",
270 " -1,\n",
271 " 1,\n",
272 " -1,\n",
273 " 1,\n",
274 " 1,\n",
275 " -1,\n",
276 " 1,\n",
277 " 1,\n",
278 " 1,\n",
279 " 1,\n",
280 " 1,\n",
281 " 1,\n",
282 " 1,\n",
283 " 1,\n",
284 " 1,\n",
285 " -1,\n",
286 " 1,\n",
287 " -1,\n",
288 " 1,\n",
289 " -1,\n",
290 " -1,\n",
291 " 1,\n",
292 " 1,\n",
293 " 1,\n",
294 " -1,\n",
295 " 1,\n",
296 " -1,\n",
297 " 1,\n",
298 " 1,\n",
299 " 1,\n",
300 " 1,\n",
301 " 1,\n",
302 " 1,\n",
303 " -1,\n",
304 " 1,\n",
305 " 1,\n",
306 " 1,\n",
307 " 1,\n",
308 " -1,\n",
309 " -1,\n",
310 " 1,\n",
311 " 1,\n",
312 " 1,\n",
313 " -1,\n",
314 " -1,\n",
315 " 1,\n",
316 " 1,\n",
317 " -1,\n",
318 " -1,\n",
319 " -1,\n",
320 " 1,\n",
321 " -1,\n",
322 " 1,\n",
323 " 1,\n",
324 " 1,\n",
325 " 1,\n",
326 " 1,\n",
327 " -1,\n",
328 " 1,\n",
329 " 1,\n",
330 " 1,\n",
331 " 1,\n",
332 " 1,\n",
333 " 1,\n",
334 " 1,\n",
335 " 1,\n",
336 " 1,\n",
337 " -1,\n",
338 " -1,\n",
339 " 1,\n",
340 " -1,\n",
341 " 1,\n",
342 " 1,\n",
343 " 1,\n",
344 " -1,\n",
345 " 1,\n",
346 " -1,\n",
347 " -1,\n",
348 " 1,\n",
349 " 1,\n",
350 " -1,\n",
351 " -1,\n",
352 " 1,\n",
353 " 1,\n",
354 " 1,\n",
355 " -1,\n",
356 " -1,\n",
357 " -1,\n",
358 " 1,\n",
359 " -1,\n",
360 " -1,\n",
361 " 1,\n",
362 " 1,\n",
363 " 1,\n",
364 " 1,\n",
365 " 1,\n",
366 " -1,\n",
367 " 1,\n",
368 " -1,\n",
369 " -1,\n",
370 " 1,\n",
371 " 1,\n",
372 " 1,\n",
373 " 1,\n",
374 " 1,\n",
375 " 1,\n",
376 " 1,\n",
377 " 1,\n",
378 " 1,\n",
379 " 1,\n",
380 " 1,\n",
381 " 1,\n",
382 " -1,\n",
383 " 1,\n",
384 " -1,\n",
385 " 1,\n",
386 " 1,\n",
387 " 1,\n",
388 " 1,\n",
389 " 1,\n",
390 " 1,\n",
391 " -1,\n",
392 " 1,\n",
393 " 1,\n",
394 " -1,\n",
395 " -1,\n",
396 " -1,\n",
397 " 1,\n",
398 " -1,\n",
399 " -1,\n",
400 " 1,\n",
401 " 1,\n",
402 " 1,\n",
403 " 1,\n",
404 " -1,\n",
405 " 1,\n",
406 " 1,\n",
407 " -1,\n",
408 " -1,\n",
409 " -1,\n",
410 " 1,\n",
411 " -1,\n",
412 " -1,\n",
413 " 1,\n",
414 " 1,\n",
415 " 1,\n",
416 " -1,\n",
417 " 1,\n",
418 " 1,\n",
419 " -1,\n",
420 " 1,\n",
421 " -1,\n",
422 " -1,\n",
423 " 1,\n",
424 " -1,\n",
425 " -1,\n",
426 " 1,\n",
427 " -1,\n",
428 " -1,\n",
429 " 1,\n",
430 " 1,\n",
431 " -1,\n",
432 " 1,\n",
433 " 1,\n",
434 " 1,\n",
435 " 1,\n",
436 " -1,\n",
437 " -1,\n",
438 " 1,\n",
439 " 1,\n",
440 " -1,\n",
441 " -1,\n",
442 " 1,\n",
443 " -1,\n",
444 " -1,\n",
445 " 1,\n",
446 " -1,\n",
447 " 1,\n",
448 " -1,\n",
449 " 1,\n",
450 " 1,\n",
451 " -1,\n",
452 " 1,\n",
453 " 1,\n",
454 " -1,\n",
455 " 1,\n",
456 " 1,\n",
457 " 1,\n",
458 " -1,\n",
459 " -1,\n",
460 " -1,\n",
461 " 1,\n",
462 " 1,\n",
463 " 1,\n",
464 " -1,\n",
465 " -1,\n",
466 " -1,\n",
467 " -1,\n",
468 " -1,\n",
469 " 1,\n",
470 " 1,\n",
471 " 1,\n",
472 " 1,\n",
473 " 1,\n",
474 " -1,\n",
475 " 1,\n",
476 " 1,\n",
477 " 1,\n",
478 " 1,\n",
479 " -1,\n",
480 " -1,\n",
481 " -1,\n",
482 " -1,\n",
483 " -1,\n",
484 " 1,\n",
485 " 1,\n",
486 " 1,\n",
487 " 1,\n",
488 " 1,\n",
489 " -1,\n",
490 " 1,\n",
491 " 1,\n",
492 " -1,\n",
493 " 1,\n",
494 " 1,\n",
495 " -1,\n",
496 " 1,\n",
497 " -1,\n",
498 " -1,\n",
499 " 1,\n",
500 " -1,\n",
501 " -1,\n",
502 " 1,\n",
503 " -1,\n",
504 " 1,\n",
505 " 1,\n",
506 " 1,\n",
507 " 1,\n",
508 " -1,\n",
509 " 1,\n",
510 " 1,\n",
511 " 1,\n",
512 " 1,\n",
513 " 1,\n",
514 " -1,\n",
515 " -1,\n",
516 " 1,\n",
517 " 1,\n",
518 " 1,\n",
519 " 1,\n",
520 " 1,\n",
521 " -1,\n",
522 " 1,\n",
523 " 1,\n",
524 " 1,\n",
525 " 1,\n",
526 " -1,\n",
527 " 1,\n",
528 " -1,\n",
529 " 1,\n",
530 " 1,\n",
531 " -1,\n",
532 " -1,\n",
533 " 1,\n",
534 " -1,\n",
535 " 1,\n",
536 " -1,\n",
537 " 1,\n",
538 " -1,\n",
539 " 1,\n",
540 " -1,\n",
541 " -1,\n",
542 " 1,\n",
543 " 1,\n",
544 " 1,\n",
545 " -1,\n",
546 " 1,\n",
547 " 1,\n",
548 " 1,\n",
549 " 1,\n",
550 " 1,\n",
551 " 1,\n",
552 " 1,\n",
553 " -1,\n",
554 " 1,\n",
555 " 1,\n",
556 " 1,\n",
557 " -1,\n",
558 " 1,\n",
559 " -1,\n",
560 " -1,\n",
561 " -1,\n",
562 " 1,\n",
563 " -1,\n",
564 " 1,\n",
565 " 1,\n",
566 " 1,\n",
567 " -1,\n",
568 " -1,\n",
569 " -1,\n",
570 " 1,\n",
571 " -1,\n",
572 " 1,\n",
573 " 1,\n",
574 " -1,\n",
575 " 1,\n",
576 " -1,\n",
577 " 1,\n",
578 " 1,\n",
579 " 1,\n",
580 " -1,\n",
581 " -1,\n",
582 " -1,\n",
583 " -1,\n",
584 " 1,\n",
585 " 1,\n",
586 " 1,\n",
587 " 1,\n",
588 " -1,\n",
589 " 1,\n",
590 " 1,\n",
591 " 1,\n",
592 " 1,\n",
593 " -1,\n",
594 " -1,\n",
595 " -1,\n",
596 " 1,\n",
597 " 1,\n",
598 " 1,\n",
599 " -1,\n",
600 " 1,\n",
601 " 1,\n",
602 " 1,\n",
603 " -1,\n",
604 " 1,\n",
605 " 1,\n",
606 " -1,\n",
607 " -1,\n",
608 " -1,\n",
609 " 1,\n",
610 " 1,\n",
611 " 1,\n",
612 " 1,\n",
613 " -1,\n",
614 " 1,\n",
615 " -1,\n",
616 " 1,\n",
617 " 1,\n",
618 " -1,\n",
619 " 1,\n",
620 " 1,\n",
621 " -1,\n",
622 " 1,\n",
623 " -1,\n",
624 " 1,\n",
625 " -1,\n",
626 " -1,\n",
627 " -1,\n",
628 " -1,\n",
629 " -1,\n",
630 " 1,\n",
631 " -1,\n",
632 " 1,\n",
633 " -1,\n",
634 " 1,\n",
635 " 1,\n",
636 " 1,\n",
637 " 1,\n",
638 " -1,\n",
639 " 1,\n",
640 " 1,\n",
641 " 1,\n",
642 " 1,\n",
643 " -1,\n",
644 " -1,\n",
645 " 1,\n",
646 " -1,\n",
647 " -1,\n",
648 " -1,\n",
649 " -1,\n",
650 " -1,\n",
651 " -1,\n",
652 " 1,\n",
653 " 1,\n",
654 " 1,\n",
655 " -1,\n",
656 " 1,\n",
657 " 1,\n",
658 " 1,\n",
659 " 1,\n",
660 " -1,\n",
661 " -1,\n",
662 " 1,\n",
663 " -1,\n",
664 " 1,\n",
665 " 1,\n",
666 " -1,\n",
667 " 1,\n",
668 " 1,\n",
669 " -1,\n",
670 " -1,\n",
671 " 1,\n",
672 " 1,\n",
673 " 1,\n",
674 " -1,\n",
675 " 1,\n",
676 " -1,\n",
677 " -1,\n",
678 " -1,\n",
679 " -1,\n",
680 " 1,\n",
681 " 1,\n",
682 " 1,\n",
683 " 1,\n",
684 " 1,\n",
685 " -1,\n",
686 " -1,\n",
687 " -1,\n",
688 " -1,\n",
689 " 1,\n",
690 " 1,\n",
691 " -1,\n",
692 " 1,\n",
693 " 1,\n",
694 " -1,\n",
695 " 1,\n",
696 " 1,\n",
697 " -1,\n",
698 " 1,\n",
699 " -1,\n",
700 " -1,\n",
701 " 1,\n",
702 " -1,\n",
703 " 1,\n",
704 " 1,\n",
705 " 1,\n",
706 " -1,\n",
707 " 1,\n",
708 " -1,\n",
709 " -1,\n",
710 " -1,\n",
711 " -1,\n",
712 " 1,\n",
713 " 1,\n",
714 " 1,\n",
715 " 1,\n",
716 " -1,\n",
717 " 1,\n",
718 " 1,\n",
719 " 1,\n",
720 " -1,\n",
721 " 1,\n",
722 " 1,\n",
723 " -1,\n",
724 " -1,\n",
725 " 1,\n",
726 " -1,\n",
727 " 1,\n",
728 " -1,\n",
729 " 1,\n",
730 " 1,\n",
731 " 1,\n",
732 " -1,\n",
733 " 1,\n",
734 " 1,\n",
735 " 1,\n",
736 " -1,\n",
737 " -1,\n",
738 " 1,\n",
739 " 1,\n",
740 " -1,\n",
741 " 1,\n",
742 " -1,\n",
743 " 1,\n",
744 " 1,\n",
745 " 1,\n",
746 " -1,\n",
747 " -1,\n",
748 " 1,\n",
749 " 1,\n",
750 " -1,\n",
751 " -1,\n",
752 " 1,\n",
753 " -1,\n",
754 " -1,\n",
755 " -1,\n",
756 " 1,\n",
757 " -1,\n",
758 " -1,\n",
759 " -1,\n",
760 " 1,\n",
761 " 1,\n",
762 " 1,\n",
763 " -1,\n",
764 " 1,\n",
765 " 1,\n",
766 " -1,\n",
767 " -1,\n",
768 " 1,\n",
769 " -1,\n",
770 " -1,\n",
771 " -1,\n",
772 " 1,\n",
773 " -1,\n",
774 " -1,\n",
775 " 1,\n",
776 " 1,\n",
777 " 1,\n",
778 " 1,\n",
779 " 1,\n",
780 " 1,\n",
781 " 1,\n",
782 " 1,\n",
783 " -1,\n",
784 " 1,\n",
785 " 1,\n",
786 " -1,\n",
787 " 1,\n",
788 " -1,\n",
789 " 1,\n",
790 " 1,\n",
791 " -1,\n",
792 " 1,\n",
793 " 1,\n",
794 " -1,\n",
795 " -1,\n",
796 " 1,\n",
797 " -1,\n",
798 " -1,\n",
799 " -1,\n",
800 " -1,\n",
801 " -1,\n",
802 " -1,\n",
803 " -1,\n",
804 " -1,\n",
805 " 1,\n",
806 " 1,\n",
807 " -1,\n",
808 " 1,\n",
809 " 1,\n",
810 " 1,\n",
811 " 1,\n",
812 " 1,\n",
813 " 1,\n",
814 " 1,\n",
815 " -1,\n",
816 " -1,\n",
817 " 1,\n",
818 " 1,\n",
819 " 1,\n",
820 " 1,\n",
821 " 1,\n",
822 " -1,\n",
823 " -1,\n",
824 " 1,\n",
825 " 1,\n",
826 " 1,\n",
827 " -1,\n",
828 " -1,\n",
829 " 1,\n",
830 " -1,\n",
831 " -1,\n",
832 " 1,\n",
833 " 1,\n",
834 " -1,\n",
835 " 1,\n",
836 " -1,\n",
837 " -1,\n",
838 " -1,\n",
839 " -1,\n",
840 " -1,\n",
841 " 1,\n",
842 " -1,\n",
843 " 1,\n",
844 " 1,\n",
845 " -1,\n",
846 " -1,\n",
847 " 1,\n",
848 " 1,\n",
849 " -1,\n",
850 " 1,\n",
851 " -1,\n",
852 " -1,\n",
853 " 1,\n",
854 " -1,\n",
855 " 1,\n",
856 " -1,\n",
857 " -1,\n",
858 " 1,\n",
859 " 1,\n",
860 " 1,\n",
861 " -1,\n",
862 " -1,\n",
863 " 1,\n",
864 " 1,\n",
865 " -1,\n",
866 " -1,\n",
867 " -1,\n",
868 " -1,\n",
869 " -1,\n",
870 " 1,\n",
871 " 1,\n",
872 " -1,\n",
873 " -1,\n",
874 " -1,\n",
875 " 1,\n",
876 " 1,\n",
877 " -1,\n",
878 " 1,\n",
879 " 1,\n",
880 " 1,\n",
881 " -1,\n",
882 " -1,\n",
883 " -1,\n",
884 " 1,\n",
885 " -1,\n",
886 " 1,\n",
887 " 1,\n",
888 " -1,\n",
889 " 1,\n",
890 " 1,\n",
891 " 1,\n",
892 " 1,\n",
893 " 1,\n",
894 " 1,\n",
895 " 1,\n",
896 " -1,\n",
897 " 1,\n",
898 " -1,\n",
899 " 1,\n",
900 " -1,\n",
901 " 1,\n",
902 " -1,\n",
903 " 1,\n",
904 " 1,\n",
905 " 1,\n",
906 " 1,\n",
907 " 1,\n",
908 " 1,\n",
909 " 1,\n",
910 " 1,\n",
911 " 1,\n",
912 " -1,\n",
913 " 1,\n",
914 " 1,\n",
915 " -1,\n",
916 " 1,\n",
917 " 1,\n",
918 " -1,\n",
919 " -1,\n",
920 " 1,\n",
921 " 1,\n",
922 " 1,\n",
923 " -1,\n",
924 " 1,\n",
925 " -1,\n",
926 " 1,\n",
927 " 1,\n",
928 " -1,\n",
929 " 1,\n",
930 " -1,\n",
931 " -1,\n",
932 " -1,\n",
933 " 1,\n",
934 " 1,\n",
935 " -1,\n",
936 " -1,\n",
937 " 1,\n",
938 " -1,\n",
939 " 1,\n",
940 " -1,\n",
941 " -1,\n",
942 " 1,\n",
943 " -1,\n",
944 " 1,\n",
945 " 1,\n",
946 " 1,\n",
947 " -1,\n",
948 " -1,\n",
949 " -1,\n",
950 " -1,\n",
951 " 1,\n",
952 " -1,\n",
953 " -1,\n",
954 " -1,\n",
955 " 1,\n",
956 " -1,\n",
957 " 1,\n",
958 " -1,\n",
959 " -1,\n",
960 " 1,\n",
961 " 1,\n",
962 " 1,\n",
963 " 1,\n",
964 " -1,\n",
965 " -1,\n",
966 " -1,\n",
967 " 1,\n",
968 " 1,\n",
969 " -1,\n",
970 " -1,\n",
971 " 1,\n",
972 " -1,\n",
973 " 1,\n",
974 " 1,\n",
975 " -1,\n",
976 " -1,\n",
977 " 1,\n",
978 " -1,\n",
979 " -1,\n",
980 " -1,\n",
981 " 1,\n",
982 " -1,\n",
983 " 1,\n",
984 " 1,\n",
985 " 1,\n",
986 " -1,\n",
987 " 1,\n",
988 " 1,\n",
989 " 1,\n",
990 " -1,\n",
991 " 1,\n",
992 " 1,\n",
993 " -1,\n",
994 " 1,\n",
995 " -1,\n",
996 " 1,\n",
997 " -1,\n",
998 " -1,\n",
999 " 1,\n",
1000 " 1,\n",
1001 " -1,\n",
1002 " -1,\n",
1003 " 1,\n",
1004 " -1,\n",
1005 " 1,\n",
1006 " -1,\n",
1007 " 1,\n",
1008 " -1,\n",
1009 " 1,\n",
1010 " 1,\n",
1011 " 1,\n",
1012 " -1,\n",
1013 " -1,\n",
1014 " 1,\n",
1015 " -1,\n",
1016 " -1,\n",
1017 " -1,\n",
1018 " -1,\n",
1019 " 1,\n",
1020 " 1,\n",
1021 " 1,\n",
1022 " -1,\n",
1023 " 1,\n",
1024 " -1,\n",
1025 " 1,\n",
1026 " 1,\n",
1027 " -1,\n",
1028 " 1,\n",
1029 " -1,\n",
1030 " 1,\n",
1031 " 1,\n",
1032 " 1,\n",
1033 " -1,\n",
1034 " 1,\n",
1035 " 1,\n",
1036 " -1,\n",
1037 " -1,\n",
1038 " 1,\n",
1039 " -1,\n",
1040 " 1,\n",
1041 " -1,\n",
1042 " 1,\n",
1043 " -1,\n",
1044 " -1,\n",
1045 " 1,\n",
1046 " 1,\n",
1047 " 1,\n",
1048 " 1,\n",
1049 " -1,\n",
1050 " 1,\n",
1051 " 1,\n",
1052 " -1,\n",
1053 " 1,\n",
1054 " -1,\n",
1055 " -1,\n",
1056 " -1,\n",
1057 " -1,\n",
1058 " -1,\n",
1059 " 1,\n",
1060 " ...]"
1061 ]
1062 },
1063 "execution_count": 4,
1064 "metadata": {},
1065 "output_type": "execute_result"
1066 }
1067 ],
1068 "source": [
1069 "deltas = [1 if c == '(' else -1 for c in pi]\n",
1070 "deltas"
1071 ]
1072 },
1073 {
1074 "cell_type": "code",
1075 "execution_count": 5,
1076 "metadata": {
1077 "collapsed": false
1078 },
1079 "outputs": [
1080 {
1081 "data": {
1082 "text/plain": [
1083 "1771"
1084 ]
1085 },
1086 "execution_count": 5,
1087 "metadata": {},
1088 "output_type": "execute_result"
1089 }
1090 ],
1091 "source": [
1092 "import itertools\n",
1093 "\n",
1094 "len(list(itertools.takewhile(lambda f: f >= -1, itertools.accumulate(deltas))))"
1095 ]
1096 },
1097 {
1098 "cell_type": "code",
1099 "execution_count": null,
1100 "metadata": {
1101 "collapsed": true
1102 },
1103 "outputs": [],
1104 "source": []
1105 }
1106 ],
1107 "metadata": {
1108 "kernelspec": {
1109 "display_name": "Python 3",
1110 "language": "python",
1111 "name": "python3"
1112 },
1113 "language_info": {
1114 "codemirror_mode": {
1115 "name": "ipython",
1116 "version": 3
1117 },
1118 "file_extension": ".py",
1119 "mimetype": "text/x-python",
1120 "name": "python",
1121 "nbconvert_exporter": "python",
1122 "pygments_lexer": "ipython3",
1123 "version": "3.4.3"
1124 }
1125 },
1126 "nbformat": 4,
1127 "nbformat_minor": 0
1128 }