-
Notifications
You must be signed in to change notification settings - Fork 0
/
day1.py
executable file
·2253 lines (2010 loc) · 10.4 KB
/
day1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
inp = """8462
6981
3714
4409
8186
3614
2218
7558
6702
2947
4727
6396
5718
2361
1970
1583
2816
2995
6914
4313
1401
1643
7815
2162
8841
7671
5740
5471
4838
2281
2784
4587
1497
2074
1161
4388
2233
4795
2011
5438
14064
9646
2537
2064
2833
1164
14379
6008
4327
4709
5412
2745
5680
5322
4375
4064
4822
6523
6824
6822
12100
24791
18239
9704
8218
9949
3078
9407
3732
4281
6727
9833
2549
5042
7053
6116
9624
5393
8359
4195
7869
15434
6997
5776
2487
7843
2739
5227
4088
6281
7078
4291
5461
4838
7936
5449
5754
4685
7642
7244
4912
4020
18761
17710
8736
6204
1295
3812
5078
4627
3818
4351
5202
2542
2728
3036
5026
5146
5771
8809
5364
22076
3846
2867
10260
3321
7715
7670
1326
5480
2613
1442
3771
1692
6131
3945
4591
5165
1648
6084
4952
4295
4390
3935
4403
6299
4307
5329
4235
4779
4498
6871
5739
4102
6815
1975
4056
3875
2650
5888
1605
3972
4781
5694
4150
5765
3919
4260
6339
5614
4597
1829
4292
4756
4348
3051
2662
4018
1498
3391
1776
1919
3141
3938
17338
10081
22228
10554
2454
2879
3605
3717
5477
4826
3133
2221
1431
3235
3371
1364
2137
1774
2015
5115
3331
3588
3264
2401
5770
3408
1153
6106
3261
2801
3380
1377
2126
5516
4087
2353
1039
1909
5374
15655
12356
7421
12094
1776
16080
7634
4329
9409
10153
10744
2145
5796
1586
3622
3635
1314
5713
5566
6397
2033
1083
7096
6595
6652
4872
4444
9731
12016
10148
7358
10025
7471
1346
1189
2777
4153
1415
9311
6324
4108
7104
8467
9326
3339
5048
8225
1647
3640
2922
3110
15978
17916
4502
4106
5683
8061
6507
3591
4560
4620
7036
5762
1470
7613
12487
1257
10687
4374
14169
1170
2310
10184
6759
12955
3895
6388
19637
11418
4728
10935
8856
9067
7661
3795
3895
7974
2340
3395
1442
4258
3584
1935
2919
3870
1078
4163
5192
3363
2386
5897
2922
1619
4872
1903
8638
8492
1883
10979
2715
3274
7286
10670
13042
13137
3729
1312
1981
2754
4417
1466
7675
2290
5074
5666
13836
1263
24451
6390
8913
12614
6468
2541
13763
4673
7245
9128
4712
3838
4596
6620
5459
6350
4454
5111
3862
1374
2091
2522
6196
2052
1399
6151
1987
3678
7427
6633
1447
1854
6601
3459
4633
1339
2955
3929
1057
1910
1896
2326
2173
1062
5249
3730
4479
6377
2833
4106
4126
4492
2132
4484
3465
5345
2295
5946
2465
5684
5573
4449
5983
4863
3678
6007
1249
1563
5270
3334
1612
3210
1215
4474
2893
4987
2355
3912
5019
4544
1446
3076
4833
4889
8299
3042
5715
8442
10294
3697
2071
1482
2461
6281
3382
1175
7048
2050
1470
5249
7622
6950
4962
8573
6266
12922
11159
1493
6320
4365
7883
17708
18169
11780
8023
7870
4647
6059
1094
1888
8696
2077
5882
3320
3180
5779
2360
6811
7802
1662
3157
7373
4282
5282
3162
5081
1917
1149
2325
6862
4536
2776
6418
4161
6919
1766
2387
11508
6617
1521
6854
4799
1463
11379
12419
4634
8522
3323
43380
1529
2302
6234
5285
6071
3741
6783
3271
1451
3379
1032
1218
53976
3746
2269
4878
5085
1873
3582
2155
6638
2804
3910
5384
4865
4905
2648
2320
1775
3803
1137
2405
1974
1667
5677
3687
2476
5332
2511
2805
3088
5437
4000
5283
6220
3387
1962
2868
2084
5740
4899
5846
20975
15672
11633
12928
17372
10964
6326
3115
18901
2151
6218
2619
8294
12292
12179
5390
4373
3685
2236
7107
11917
3701
5696
1751
6613
6606
1288
5362
6157
6236
3649
4023
5290
7999
10040
3338
7547
7575
6369
3358
6414
2066
2012
3849
1421
2962
4607
3548
6637
5759
4800
5974
3209
11201
10317
7340
1073
11610
5148
2081
5577
5340
7634
4998
7107
6923
1673
4809
6274
4140
2993
3003
2973
9914
1878
3190
5792
3561
2917
4408
1443
4373
1241
3288
5703
4155
5764
4857
5828
4089
7390
5924
7987
2919
4474
7700
5457
7926
7539
5344
5739
4883
1156
5896
5991
7625
2118
3292
7562
1820
6485
7804
6886
7436
6163
2618
3119
7144
6274
2792
7602
4912
6024
5984
2408
1685
1702
5851
2756
1341
4558
1073
4394
6014
1395
6662
6573
6043
7402
5790
6942
4171
4043
3077
5672
4984
1292
6545
2265
6121
2385
2229
6870
6579
1549
6030
3423
1830
6027
6361
5979
6532
7110
1881
4659
9825
4176
4534
1732
4816
6604
8182
2391
2309
5266
5879
2463
3636
4958
6308
2091
2588
1841
6899
5666
9351
3824
5754
2710
3782
2784
4535
6157
1055
3569
6498
2679
2949
3285
2519
5661
4565
8056
1975
6947
7508
5570
3727
3287
1794
4933
6458
6171
9991
10533
6503
1450
18391
9046
17384
18940
5583
5102
2869
5328
2041
4327
1656
2874
2811
5765
4568
5280
2770
1147
6082
1512
5928
8631
3263
5569
3693
5060
1810
8327
2900
21146
13775
13189
2853
1782
1461
2560
2046
2773
2453
1218
3545
6013
5893
1853
1926
1847
5914
15312
22899
2752
1253
1448
2627
1161
3661
3457
2992
4606
3206
3145
3639
2833
3687
2148
6668
3671
3484
2000
2149
3748
1256
3168
6889
5046
6594
7437
5596
6744
6863
7397
5922
1897
4042
3993
2569
2509
6048
10456
7724
2668
4749
11329
5011
4007
10189
6972
4514
1702
2925
1828
8000
5724
3567
1190
2949
7487
6652
1472
5965
3071
6990
3356
5283
6487
1990
31016