added day 05
This commit is contained in:
parent
092c1892ea
commit
5bbbb4476b
500
05/input01.txt
Normal file
500
05/input01.txt
Normal file
@ -0,0 +1,500 @@
|
|||||||
|
72,504 -> 422,154
|
||||||
|
877,851 -> 680,654
|
||||||
|
447,989 -> 517,989
|
||||||
|
173,125 -> 981,933
|
||||||
|
736,255 -> 374,617
|
||||||
|
835,681 -> 693,539
|
||||||
|
451,176 -> 451,885
|
||||||
|
793,629 -> 793,157
|
||||||
|
907,945 -> 47,85
|
||||||
|
868,104 -> 892,104
|
||||||
|
594,18 -> 384,18
|
||||||
|
454,880 -> 524,880
|
||||||
|
400,271 -> 915,271
|
||||||
|
843,989 -> 45,191
|
||||||
|
640,885 -> 845,885
|
||||||
|
115,370 -> 115,633
|
||||||
|
185,578 -> 185,648
|
||||||
|
159,929 -> 933,155
|
||||||
|
650,147 -> 650,523
|
||||||
|
719,72 -> 719,649
|
||||||
|
908,80 -> 18,970
|
||||||
|
417,246 -> 777,606
|
||||||
|
452,803 -> 170,803
|
||||||
|
311,324 -> 18,324
|
||||||
|
665,835 -> 108,278
|
||||||
|
654,122 -> 223,122
|
||||||
|
38,40 -> 38,713
|
||||||
|
658,471 -> 148,471
|
||||||
|
894,783 -> 894,693
|
||||||
|
461,950 -> 941,470
|
||||||
|
234,542 -> 941,542
|
||||||
|
441,793 -> 291,793
|
||||||
|
913,139 -> 302,139
|
||||||
|
978,24 -> 50,952
|
||||||
|
817,828 -> 374,385
|
||||||
|
919,68 -> 919,819
|
||||||
|
674,20 -> 722,20
|
||||||
|
950,698 -> 312,60
|
||||||
|
350,398 -> 213,398
|
||||||
|
93,627 -> 93,896
|
||||||
|
629,296 -> 118,296
|
||||||
|
324,372 -> 324,83
|
||||||
|
125,130 -> 543,130
|
||||||
|
29,40 -> 29,262
|
||||||
|
297,682 -> 768,211
|
||||||
|
578,173 -> 115,636
|
||||||
|
375,32 -> 375,667
|
||||||
|
755,937 -> 376,937
|
||||||
|
925,623 -> 735,623
|
||||||
|
538,57 -> 860,57
|
||||||
|
212,293 -> 212,797
|
||||||
|
725,844 -> 315,434
|
||||||
|
486,334 -> 486,564
|
||||||
|
392,924 -> 392,709
|
||||||
|
676,554 -> 676,411
|
||||||
|
807,520 -> 807,553
|
||||||
|
891,732 -> 973,650
|
||||||
|
617,445 -> 781,281
|
||||||
|
960,891 -> 353,284
|
||||||
|
264,543 -> 264,345
|
||||||
|
844,840 -> 844,753
|
||||||
|
567,963 -> 663,963
|
||||||
|
174,450 -> 477,450
|
||||||
|
259,943 -> 555,647
|
||||||
|
791,394 -> 791,34
|
||||||
|
962,532 -> 586,156
|
||||||
|
26,328 -> 519,821
|
||||||
|
904,132 -> 58,978
|
||||||
|
209,718 -> 209,591
|
||||||
|
364,73 -> 364,237
|
||||||
|
855,233 -> 268,820
|
||||||
|
923,577 -> 923,528
|
||||||
|
435,551 -> 393,593
|
||||||
|
506,168 -> 773,168
|
||||||
|
753,333 -> 753,178
|
||||||
|
124,375 -> 240,259
|
||||||
|
66,340 -> 66,248
|
||||||
|
596,533 -> 596,954
|
||||||
|
358,144 -> 358,368
|
||||||
|
106,866 -> 419,866
|
||||||
|
883,777 -> 185,79
|
||||||
|
325,981 -> 325,805
|
||||||
|
228,521 -> 228,602
|
||||||
|
808,938 -> 808,452
|
||||||
|
980,567 -> 980,293
|
||||||
|
696,129 -> 671,104
|
||||||
|
597,970 -> 731,970
|
||||||
|
691,920 -> 691,35
|
||||||
|
552,703 -> 616,639
|
||||||
|
74,124 -> 738,788
|
||||||
|
680,296 -> 680,467
|
||||||
|
858,76 -> 409,76
|
||||||
|
167,280 -> 167,346
|
||||||
|
172,576 -> 586,162
|
||||||
|
866,921 -> 866,975
|
||||||
|
760,192 -> 760,24
|
||||||
|
47,197 -> 47,781
|
||||||
|
657,136 -> 84,136
|
||||||
|
414,322 -> 76,322
|
||||||
|
14,923 -> 565,923
|
||||||
|
892,515 -> 426,49
|
||||||
|
560,325 -> 241,644
|
||||||
|
835,603 -> 471,603
|
||||||
|
421,54 -> 783,54
|
||||||
|
523,717 -> 523,188
|
||||||
|
272,473 -> 272,631
|
||||||
|
87,769 -> 87,459
|
||||||
|
983,110 -> 878,110
|
||||||
|
34,64 -> 34,362
|
||||||
|
40,717 -> 691,66
|
||||||
|
127,420 -> 127,697
|
||||||
|
289,337 -> 289,67
|
||||||
|
900,143 -> 956,143
|
||||||
|
118,450 -> 118,485
|
||||||
|
205,691 -> 205,179
|
||||||
|
674,363 -> 698,363
|
||||||
|
401,117 -> 776,117
|
||||||
|
619,15 -> 619,104
|
||||||
|
906,191 -> 167,930
|
||||||
|
505,228 -> 897,620
|
||||||
|
252,545 -> 51,344
|
||||||
|
235,917 -> 235,673
|
||||||
|
275,938 -> 275,892
|
||||||
|
909,518 -> 79,518
|
||||||
|
182,530 -> 182,324
|
||||||
|
708,314 -> 708,274
|
||||||
|
853,689 -> 542,378
|
||||||
|
221,802 -> 11,802
|
||||||
|
967,685 -> 967,469
|
||||||
|
402,360 -> 910,360
|
||||||
|
212,655 -> 212,602
|
||||||
|
126,860 -> 126,390
|
||||||
|
651,961 -> 406,961
|
||||||
|
482,491 -> 882,891
|
||||||
|
120,291 -> 120,570
|
||||||
|
305,437 -> 49,437
|
||||||
|
528,469 -> 112,885
|
||||||
|
146,689 -> 898,689
|
||||||
|
356,465 -> 356,722
|
||||||
|
967,576 -> 467,576
|
||||||
|
731,492 -> 731,684
|
||||||
|
845,330 -> 572,57
|
||||||
|
575,727 -> 544,727
|
||||||
|
257,703 -> 971,703
|
||||||
|
334,557 -> 456,557
|
||||||
|
701,241 -> 217,241
|
||||||
|
681,294 -> 438,537
|
||||||
|
797,874 -> 240,874
|
||||||
|
232,628 -> 41,628
|
||||||
|
586,529 -> 680,435
|
||||||
|
412,468 -> 130,468
|
||||||
|
83,200 -> 872,989
|
||||||
|
17,987 -> 979,25
|
||||||
|
304,103 -> 304,683
|
||||||
|
855,784 -> 236,165
|
||||||
|
770,866 -> 770,947
|
||||||
|
209,198 -> 720,709
|
||||||
|
915,779 -> 915,827
|
||||||
|
924,421 -> 172,421
|
||||||
|
191,265 -> 740,814
|
||||||
|
255,198 -> 903,198
|
||||||
|
600,147 -> 212,147
|
||||||
|
901,20 -> 25,896
|
||||||
|
662,96 -> 662,948
|
||||||
|
600,834 -> 600,549
|
||||||
|
556,142 -> 556,541
|
||||||
|
564,350 -> 803,111
|
||||||
|
921,927 -> 182,188
|
||||||
|
649,858 -> 649,953
|
||||||
|
751,435 -> 751,415
|
||||||
|
633,665 -> 633,160
|
||||||
|
487,343 -> 733,343
|
||||||
|
13,16 -> 976,979
|
||||||
|
91,692 -> 520,263
|
||||||
|
719,461 -> 843,461
|
||||||
|
236,645 -> 23,645
|
||||||
|
172,886 -> 172,936
|
||||||
|
429,310 -> 429,424
|
||||||
|
774,765 -> 31,22
|
||||||
|
72,495 -> 556,11
|
||||||
|
539,625 -> 539,124
|
||||||
|
270,735 -> 481,735
|
||||||
|
18,652 -> 18,662
|
||||||
|
710,405 -> 710,907
|
||||||
|
651,530 -> 651,365
|
||||||
|
526,41 -> 839,354
|
||||||
|
620,865 -> 965,865
|
||||||
|
889,383 -> 261,383
|
||||||
|
189,950 -> 483,950
|
||||||
|
591,402 -> 689,402
|
||||||
|
653,576 -> 653,430
|
||||||
|
13,600 -> 545,600
|
||||||
|
61,766 -> 491,766
|
||||||
|
432,533 -> 307,658
|
||||||
|
304,757 -> 304,274
|
||||||
|
988,52 -> 53,987
|
||||||
|
228,307 -> 813,307
|
||||||
|
651,414 -> 683,382
|
||||||
|
255,898 -> 71,898
|
||||||
|
901,263 -> 208,263
|
||||||
|
26,97 -> 300,371
|
||||||
|
546,133 -> 798,133
|
||||||
|
499,240 -> 412,153
|
||||||
|
415,877 -> 359,877
|
||||||
|
567,831 -> 685,831
|
||||||
|
102,510 -> 902,510
|
||||||
|
961,433 -> 386,433
|
||||||
|
399,252 -> 898,751
|
||||||
|
528,198 -> 528,241
|
||||||
|
71,28 -> 626,583
|
||||||
|
147,855 -> 158,855
|
||||||
|
218,879 -> 870,227
|
||||||
|
727,711 -> 226,210
|
||||||
|
402,797 -> 402,842
|
||||||
|
675,238 -> 675,311
|
||||||
|
98,917 -> 750,917
|
||||||
|
318,437 -> 343,412
|
||||||
|
197,311 -> 399,311
|
||||||
|
264,269 -> 696,269
|
||||||
|
100,475 -> 100,194
|
||||||
|
668,874 -> 668,822
|
||||||
|
564,52 -> 101,515
|
||||||
|
320,153 -> 320,894
|
||||||
|
656,574 -> 656,487
|
||||||
|
448,295 -> 448,112
|
||||||
|
543,108 -> 38,613
|
||||||
|
55,438 -> 742,438
|
||||||
|
547,140 -> 288,140
|
||||||
|
640,212 -> 320,212
|
||||||
|
406,760 -> 882,760
|
||||||
|
373,546 -> 373,693
|
||||||
|
79,328 -> 360,328
|
||||||
|
441,646 -> 441,614
|
||||||
|
25,197 -> 15,207
|
||||||
|
155,426 -> 457,728
|
||||||
|
874,36 -> 507,403
|
||||||
|
35,305 -> 420,305
|
||||||
|
635,629 -> 672,629
|
||||||
|
660,755 -> 660,862
|
||||||
|
535,124 -> 535,157
|
||||||
|
340,957 -> 72,689
|
||||||
|
601,734 -> 432,734
|
||||||
|
629,74 -> 768,74
|
||||||
|
526,454 -> 773,454
|
||||||
|
470,78 -> 489,78
|
||||||
|
301,820 -> 957,820
|
||||||
|
300,457 -> 697,854
|
||||||
|
100,90 -> 100,674
|
||||||
|
322,947 -> 322,209
|
||||||
|
964,973 -> 11,20
|
||||||
|
423,803 -> 937,289
|
||||||
|
19,980 -> 464,535
|
||||||
|
873,796 -> 873,240
|
||||||
|
125,29 -> 925,829
|
||||||
|
242,980 -> 750,980
|
||||||
|
419,576 -> 419,325
|
||||||
|
347,851 -> 769,429
|
||||||
|
599,704 -> 599,928
|
||||||
|
418,956 -> 693,956
|
||||||
|
83,76 -> 833,826
|
||||||
|
71,817 -> 926,817
|
||||||
|
210,312 -> 867,969
|
||||||
|
390,510 -> 664,784
|
||||||
|
969,520 -> 969,96
|
||||||
|
675,927 -> 684,918
|
||||||
|
157,541 -> 157,550
|
||||||
|
595,521 -> 595,576
|
||||||
|
378,629 -> 274,629
|
||||||
|
117,905 -> 942,80
|
||||||
|
891,336 -> 891,806
|
||||||
|
795,183 -> 795,517
|
||||||
|
285,396 -> 285,132
|
||||||
|
272,289 -> 347,289
|
||||||
|
204,495 -> 204,799
|
||||||
|
583,907 -> 176,907
|
||||||
|
961,574 -> 338,574
|
||||||
|
739,214 -> 739,858
|
||||||
|
78,102 -> 905,929
|
||||||
|
301,785 -> 301,810
|
||||||
|
687,560 -> 390,263
|
||||||
|
756,793 -> 60,97
|
||||||
|
913,918 -> 19,24
|
||||||
|
832,956 -> 219,343
|
||||||
|
916,54 -> 437,54
|
||||||
|
919,911 -> 120,112
|
||||||
|
681,200 -> 303,200
|
||||||
|
888,121 -> 888,769
|
||||||
|
266,274 -> 266,419
|
||||||
|
843,58 -> 54,847
|
||||||
|
542,438 -> 58,922
|
||||||
|
139,689 -> 259,809
|
||||||
|
773,22 -> 610,22
|
||||||
|
221,211 -> 221,915
|
||||||
|
636,474 -> 575,474
|
||||||
|
376,628 -> 376,95
|
||||||
|
105,210 -> 105,124
|
||||||
|
831,649 -> 989,649
|
||||||
|
52,207 -> 765,207
|
||||||
|
886,114 -> 564,436
|
||||||
|
817,41 -> 222,41
|
||||||
|
33,680 -> 24,689
|
||||||
|
975,698 -> 792,515
|
||||||
|
654,492 -> 654,116
|
||||||
|
555,976 -> 457,976
|
||||||
|
797,394 -> 797,521
|
||||||
|
21,980 -> 861,140
|
||||||
|
949,259 -> 316,892
|
||||||
|
485,311 -> 234,562
|
||||||
|
621,961 -> 621,656
|
||||||
|
864,232 -> 837,205
|
||||||
|
52,978 -> 987,43
|
||||||
|
441,63 -> 815,63
|
||||||
|
10,986 -> 983,13
|
||||||
|
213,207 -> 213,234
|
||||||
|
343,117 -> 343,889
|
||||||
|
732,92 -> 687,92
|
||||||
|
142,101 -> 142,736
|
||||||
|
419,248 -> 419,89
|
||||||
|
231,933 -> 672,492
|
||||||
|
603,49 -> 603,196
|
||||||
|
46,242 -> 46,55
|
||||||
|
31,257 -> 647,873
|
||||||
|
664,812 -> 53,201
|
||||||
|
642,772 -> 152,772
|
||||||
|
650,247 -> 650,16
|
||||||
|
578,197 -> 372,197
|
||||||
|
271,245 -> 271,350
|
||||||
|
281,820 -> 281,532
|
||||||
|
823,674 -> 255,106
|
||||||
|
735,657 -> 729,657
|
||||||
|
859,933 -> 859,395
|
||||||
|
183,939 -> 919,203
|
||||||
|
739,804 -> 739,128
|
||||||
|
581,494 -> 329,494
|
||||||
|
231,875 -> 231,166
|
||||||
|
193,911 -> 833,911
|
||||||
|
290,785 -> 290,866
|
||||||
|
57,152 -> 57,105
|
||||||
|
359,585 -> 905,39
|
||||||
|
96,669 -> 468,669
|
||||||
|
813,576 -> 959,576
|
||||||
|
711,157 -> 711,791
|
||||||
|
211,789 -> 211,716
|
||||||
|
561,881 -> 929,881
|
||||||
|
474,215 -> 22,667
|
||||||
|
32,981 -> 32,409
|
||||||
|
835,421 -> 640,226
|
||||||
|
267,184 -> 267,600
|
||||||
|
67,884 -> 67,317
|
||||||
|
119,182 -> 524,587
|
||||||
|
790,791 -> 298,299
|
||||||
|
841,810 -> 156,125
|
||||||
|
373,106 -> 12,106
|
||||||
|
130,214 -> 130,281
|
||||||
|
533,48 -> 675,48
|
||||||
|
522,724 -> 483,724
|
||||||
|
497,165 -> 497,814
|
||||||
|
72,329 -> 72,689
|
||||||
|
438,596 -> 438,470
|
||||||
|
422,133 -> 167,133
|
||||||
|
966,888 -> 80,888
|
||||||
|
894,151 -> 215,151
|
||||||
|
586,699 -> 233,699
|
||||||
|
95,247 -> 114,228
|
||||||
|
141,845 -> 141,365
|
||||||
|
252,861 -> 974,139
|
||||||
|
541,748 -> 541,454
|
||||||
|
31,114 -> 549,114
|
||||||
|
846,60 -> 318,60
|
||||||
|
502,475 -> 502,876
|
||||||
|
261,374 -> 261,107
|
||||||
|
155,863 -> 155,982
|
||||||
|
967,146 -> 902,81
|
||||||
|
208,955 -> 272,955
|
||||||
|
876,799 -> 876,30
|
||||||
|
684,973 -> 684,869
|
||||||
|
516,685 -> 304,685
|
||||||
|
473,737 -> 793,737
|
||||||
|
304,214 -> 656,214
|
||||||
|
361,755 -> 361,223
|
||||||
|
565,893 -> 565,124
|
||||||
|
29,44 -> 776,791
|
||||||
|
764,344 -> 764,66
|
||||||
|
294,307 -> 294,805
|
||||||
|
15,214 -> 15,116
|
||||||
|
481,76 -> 460,55
|
||||||
|
418,233 -> 418,808
|
||||||
|
24,892 -> 895,21
|
||||||
|
885,843 -> 92,843
|
||||||
|
109,226 -> 552,226
|
||||||
|
767,867 -> 767,485
|
||||||
|
112,900 -> 72,940
|
||||||
|
910,228 -> 910,35
|
||||||
|
564,59 -> 564,249
|
||||||
|
738,954 -> 738,228
|
||||||
|
551,308 -> 19,840
|
||||||
|
882,908 -> 267,908
|
||||||
|
73,790 -> 840,790
|
||||||
|
538,352 -> 827,63
|
||||||
|
352,707 -> 547,707
|
||||||
|
187,478 -> 409,700
|
||||||
|
840,735 -> 260,155
|
||||||
|
479,244 -> 479,639
|
||||||
|
135,370 -> 382,617
|
||||||
|
345,71 -> 752,478
|
||||||
|
155,621 -> 973,621
|
||||||
|
193,215 -> 782,215
|
||||||
|
493,385 -> 130,748
|
||||||
|
582,227 -> 627,227
|
||||||
|
88,789 -> 88,936
|
||||||
|
916,197 -> 916,360
|
||||||
|
13,989 -> 989,13
|
||||||
|
97,708 -> 668,137
|
||||||
|
601,407 -> 121,407
|
||||||
|
37,961 -> 985,13
|
||||||
|
176,260 -> 857,260
|
||||||
|
10,643 -> 690,643
|
||||||
|
71,258 -> 302,258
|
||||||
|
247,848 -> 250,845
|
||||||
|
933,913 -> 933,446
|
||||||
|
839,914 -> 674,749
|
||||||
|
657,683 -> 657,786
|
||||||
|
217,374 -> 418,575
|
||||||
|
192,862 -> 931,123
|
||||||
|
906,813 -> 785,813
|
||||||
|
312,387 -> 240,387
|
||||||
|
354,844 -> 132,844
|
||||||
|
600,104 -> 610,94
|
||||||
|
603,611 -> 616,624
|
||||||
|
611,919 -> 773,757
|
||||||
|
94,54 -> 460,54
|
||||||
|
494,317 -> 952,317
|
||||||
|
131,411 -> 587,411
|
||||||
|
221,776 -> 896,776
|
||||||
|
577,947 -> 686,838
|
||||||
|
139,666 -> 139,816
|
||||||
|
352,331 -> 261,422
|
||||||
|
63,986 -> 976,73
|
||||||
|
423,507 -> 898,507
|
||||||
|
149,914 -> 699,914
|
||||||
|
70,250 -> 965,250
|
||||||
|
796,732 -> 206,732
|
||||||
|
721,750 -> 136,165
|
||||||
|
987,370 -> 987,677
|
||||||
|
325,762 -> 325,337
|
||||||
|
750,767 -> 400,417
|
||||||
|
298,302 -> 298,135
|
||||||
|
714,324 -> 270,324
|
||||||
|
611,91 -> 633,113
|
||||||
|
43,270 -> 43,735
|
||||||
|
366,721 -> 158,513
|
||||||
|
877,976 -> 296,395
|
||||||
|
435,357 -> 590,357
|
||||||
|
376,900 -> 376,929
|
||||||
|
869,962 -> 331,962
|
||||||
|
42,868 -> 700,210
|
||||||
|
805,820 -> 805,635
|
||||||
|
247,709 -> 247,598
|
||||||
|
887,31 -> 611,31
|
||||||
|
111,306 -> 769,964
|
||||||
|
143,592 -> 143,296
|
||||||
|
264,829 -> 156,829
|
||||||
|
194,824 -> 933,85
|
||||||
|
110,942 -> 961,91
|
||||||
|
498,922 -> 498,226
|
||||||
|
271,790 -> 927,134
|
||||||
|
903,69 -> 903,541
|
||||||
|
879,346 -> 879,286
|
||||||
|
873,461 -> 873,203
|
||||||
|
115,678 -> 115,741
|
||||||
|
854,174 -> 248,780
|
||||||
|
180,409 -> 180,862
|
||||||
|
350,564 -> 350,28
|
||||||
|
380,400 -> 380,522
|
||||||
|
819,150 -> 31,938
|
||||||
|
133,615 -> 801,615
|
||||||
|
975,15 -> 21,969
|
||||||
|
103,973 -> 851,225
|
||||||
|
43,112 -> 43,626
|
||||||
|
689,926 -> 712,903
|
||||||
|
976,918 -> 284,918
|
||||||
|
47,405 -> 47,553
|
||||||
|
618,744 -> 208,744
|
||||||
|
475,221 -> 475,922
|
||||||
|
344,300 -> 811,300
|
||||||
|
27,510 -> 510,510
|
||||||
|
819,830 -> 871,830
|
||||||
|
723,326 -> 723,881
|
||||||
|
652,470 -> 652,497
|
||||||
|
103,880 -> 610,880
|
||||||
|
389,681 -> 389,218
|
||||||
|
717,785 -> 330,398
|
||||||
|
513,789 -> 381,789
|
||||||
|
43,130 -> 700,787
|
||||||
|
970,16 -> 24,962
|
||||||
|
565,568 -> 708,568
|
||||||
|
220,198 -> 825,198
|
||||||
|
24,984 -> 50,984
|
||||||
|
488,366 -> 292,366
|
||||||
|
220,137 -> 739,656
|
10
05/input01_sample.txt
Normal file
10
05/input01_sample.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
0,9 -> 5,9
|
||||||
|
8,0 -> 0,8
|
||||||
|
9,4 -> 3,4
|
||||||
|
2,2 -> 2,1
|
||||||
|
7,0 -> 7,4
|
||||||
|
6,4 -> 2,0
|
||||||
|
0,9 -> 2,9
|
||||||
|
3,4 -> 1,4
|
||||||
|
0,0 -> 8,8
|
||||||
|
5,5 -> 8,2
|
47
05/solve01.py
Normal file
47
05/solve01.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import re
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
RE_INPUT = re.compile(r'^(\d+),(\d+)\s*\->\s*(\d+),(\d+)')
|
||||||
|
|
||||||
|
def read_file(filename):
|
||||||
|
file = open(filename, 'r')
|
||||||
|
while True:
|
||||||
|
line = file.readline()
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
yield line
|
||||||
|
|
||||||
|
def process_vent(coord, see_map):
|
||||||
|
if coord[0] == coord[2]:
|
||||||
|
c_max = max(coord[1], coord[3])+1
|
||||||
|
c_min = min(coord[1], coord[3])
|
||||||
|
|
||||||
|
for i in range(c_min, c_max):
|
||||||
|
k = "%d,%d" % (coord[0], i)
|
||||||
|
see_map[k] += 1
|
||||||
|
if coord[1] == coord[3]:
|
||||||
|
c_max = max(coord[0], coord[2])+1
|
||||||
|
c_min = min(coord[0], coord[2])
|
||||||
|
|
||||||
|
for i in range(c_min, c_max):
|
||||||
|
k = "%d,%d" % (i, coord[1])
|
||||||
|
see_map[k] += 1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
see_map = defaultdict(int)
|
||||||
|
for line in read_file('input01.txt'):
|
||||||
|
match = re.search(RE_INPUT, line)
|
||||||
|
if not match:
|
||||||
|
print("wrong syntax")
|
||||||
|
vent = [int(i) for i in match.groups()]
|
||||||
|
if (not (vent[0] == vent[2] or vent[1] == vent[3])):
|
||||||
|
continue
|
||||||
|
process_vent(vent, see_map)
|
||||||
|
|
||||||
|
result = sum([1 for i in see_map.values() if i > 1])
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
40
05/solve02.py
Normal file
40
05/solve02.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import re
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
RE_INPUT = re.compile(r'^(\d+),(\d+)\s*\->\s*(\d+),(\d+)')
|
||||||
|
|
||||||
|
def read_file(filename):
|
||||||
|
file = open(filename, 'r')
|
||||||
|
while True:
|
||||||
|
line = file.readline()
|
||||||
|
if not line:
|
||||||
|
break
|
||||||
|
yield line
|
||||||
|
|
||||||
|
def process_vent(coord, see_map):
|
||||||
|
diff_x = coord[2] - coord[0]
|
||||||
|
diff_y = coord[3] - coord[1]
|
||||||
|
steps = max(abs(diff_x), abs(diff_y))
|
||||||
|
diff_x = diff_x/steps;
|
||||||
|
diff_y = diff_y/steps;
|
||||||
|
|
||||||
|
for i in range(steps+1):
|
||||||
|
k = "%d,%d" % (coord[0]+diff_x*i,coord[1]+diff_y*i)
|
||||||
|
see_map[k] += 1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
see_map = defaultdict(int)
|
||||||
|
for line in read_file('input01.txt'):
|
||||||
|
match = re.search(RE_INPUT, line)
|
||||||
|
if not match:
|
||||||
|
print("wrong syntax")
|
||||||
|
vent = [int(i) for i in match.groups()]
|
||||||
|
process_vent(vent, see_map)
|
||||||
|
|
||||||
|
result = sum([1 for i in see_map.values() if i > 1])
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
x
Reference in New Issue
Block a user