problem 3

This commit is contained in:
Stefan Harmuth 2025-03-19 11:26:51 +01:00
parent aed206e1e1
commit ab587caee4
3 changed files with 138 additions and 0 deletions

100
inputs/input3 Normal file
View File

@ -0,0 +1,100 @@
767-985 184-500
133-257 182-404
394-791 372-386
719-791 824-828
409-945 792-865
92-988 500-507
437-710 467-641
122-181 177-551
594-740 637-735
838-965 953-998
124-237 254-773
66-921 466-540
878-990 868-870
159-709 221-886
492-870 531-603
639-646 646-799
280-488 430-683
424-739 512-955
713-795 804-960
117-653 157-547
614-721 680-722
781-968 630-968
861-927 312-328
772-934 615-688
498-864 582-920
106-121 112-922
208-362 290-680
485-648 542-677
183-984 466-471
965-987 964-987
557-628 628-856
377-721 435-584
409-797 19-95
513-821 361-765
95-557 610-674
54-693 281-608
829-910 434-881
778-963 885-939
395-452 577-987
175-373 258-764
777-821 642-838
338-847 255-261
75-199 949-969
419-734 453-834
340-493 586-849
274-555 871-967
613-618 842-989
777-817 812-823
270-294 637-800
827-940 364-638
32-69 688-848
85-226 162-678
579-885 657-730
161-246 238-819
269-437 400-736
176-615 355-655
452-923 481-571
649-965 175-431
368-748 994-999
179-883 467-623
286-856 768-833
106-1000 490-682
689-965 176-945
259-632 622-644
41-485 194-212
923-963 945-964
593-944 286-483
596-897 798-813
874-938 896-985
121-372 998-999
982-995 985-990
636-763 741-798
716-937 804-940
83-740 614-694
257-358 268-993
271-431 420-561
727-900 890-901
327-342 328-376
852-880 161-349
421-794 535-643
88-416 404-553
272-767 546-750
607-908 624-635
536-910 788-934
252-869 840-882
892-965 940-985
508-616 67-752
179-895 216-900
79-795 95-570
183-614 846-862
311-400 317-967
31-238 43-808
329-731 342-590
42-157 109-651
427-492 939-999
870-931 890-937
878-881 880-904
862-864 711-990
233-256 255-838
225-879 289-978

6
inputs/input3_test Normal file
View File

@ -0,0 +1,6 @@
8-9 9-10
7-8 8-10
9-10 5-10
3-10 9-10
4-8 7-9
9-10 2-7

32
problem3.py Normal file
View File

@ -0,0 +1,32 @@
my_input = open("inputs/input3", "r").read().splitlines()
p1 = 0
p2 = 0
p3 = 0
last_boxes = set()
for line in my_input:
left, right = line.split(" ")
l_low, l_high = map(int, left.split("-"))
r_low, r_high = map(int, right.split("-"))
p1 += l_high - l_low + 1
p1 += r_high - r_low + 1
if r_low < l_low:
l_low, l_high, r_low, r_high = r_low, r_high, l_low, l_high
if l_high < r_low:
this_box_set = set(range(l_low, l_high + 1))
this_box_set |= set(range(r_low, r_high + 1))
else:
this_box_set = set(range(min(l_low, r_low), max(l_high, r_high) + 1))
p2 += len(this_box_set)
if len(this_box_set | last_boxes) > p3:
p3 = len(this_box_set | last_boxes)
last_boxes = this_box_set
print(p1)
print(p2)
print(p3)