diff --git a/2025/day05/part2.py b/2025/day05/part2.py index cf83668..605a41c 100644 --- a/2025/day05/part2.py +++ b/2025/day05/part2.py @@ -4,11 +4,14 @@ valid_id: list[int] = [] final_range: list[list:[int]] = [[0,0]] input = """3-6 +1-10 +2-2 5-5 10-14 16-20 12-18 + 1 5 8 @@ -31,8 +34,8 @@ input = """3-6 # 228538610394597 # 557824039518207""" -# with open("input.txt", "r") as file: -# input = file.read() +with open("input.txt", "r") as file: + input = file.read() range_list = list(map(list, [row.split("-") for row in input.split("\n\n")[0].strip().split("\n")])) items_list = list(map(int, input.split("\n\n")[1].strip().split("\n"))) # получаем все возможные не "протухшие" id продуктов @@ -44,30 +47,40 @@ low_list, high_list = [], [] for item in range_list: low_list.append(int(item[0])) high_list.append(int(item[1])) - -range_new_dict: dict[int:int] = {} + +range_new_dict: list[int:int] = [] for low,high in zip(low_list, high_list): - range_new_dict[int(high)] = int(low) -high_list = sorted(high_list, reverse=True) -final_range = [[0,high_list[0]]] -for d in high_list: + range_new_dict.append([int(low),int(high)]) +range_new_dict = sorted(range_new_dict, key=lambda x: x[1], reverse=True) +final_range = [range_new_dict[0]] +# for i in range_new_dict: +# print(i) - if d >= final_range[-1][0] and d != range_new_dict[d]: - final_range[-1][0]= range_new_dict[d] +for d in range(1,int(len(range_new_dict))): + print("Обрабатываем пару\n",range_new_dict[d][0],range_new_dict[d][1]) + if final_range[-1][0] <= range_new_dict[d][1] <= final_range[-1][1]: #and range_new_dict[d][0] <= final_range[-1][0]: + # print(f"УСЛОВИЕ\n{str(final_range[-1][0])} <= {range_new_dict[d][1]} <= {str(final_range[-1][1])} and {str(range_new_dict[d][0])} <= {str(final_range[-1][0])}") + final_range[-1][0]= range_new_dict[d][0] final_range[-1][1]= final_range[-1][1] - print("занесли изменения") - # elif d == range_new_dict[d] and final_range[-1][1] < d: - if d > final_range[-1][0] and d == range_new_dict[d]: - print("pass!!!") + # print(f"Изменили последний в списке\n{str(final_range[-1])}") + elif final_range[-1][0] > range_new_dict[d][1] < final_range[-1][1] and range_new_dict[d][0] < final_range[-1][0]: + # print(f"УСЛОВИЕ\n{str(final_range[-1][0])} > {range_new_dict[d][1]} < {str(final_range[-1][1])} and {str(range_new_dict[d][0])} < {str(final_range[-1][0])}") + final_range.append([range_new_dict[d][0],range_new_dict[d][1]]) + # print(f"Добавили новы элемент в список\n{str(final_range[-1])}") + elif final_range[-1][0] < range_new_dict[d][1] < final_range[-1][1] and range_new_dict[d][0] > final_range[-1][0]: + # print(f"УСЛОВИЕ\n{str(final_range[-1][0])} < {range_new_dict[d][1]} < {str(final_range[-1][1])} and {str(range_new_dict[d][0])} > {str(final_range[-1][0])}") + # print(f"Проигнорировали\n{str(final_range[-1])}") pass else: - print("bang!") - final_range.append([range_new_dict[d],d]) + print(f"УСЛОВИЕ\n{str(final_range[-1][0])} ? {range_new_dict[d][1]} ? {str(final_range[-1][1])} and {str(range_new_dict[d][0])} ? {str(final_range[-1][0])}") + print("НЕ поймади!!!!!!!!!!!!\n",range_new_dict[d][0],range_new_dict[d][1],"\n",str(final_range[-1])) + pass +# print(len(final_range)) result: int = 0 for item in final_range: - print(item) + print(item[1] - item[0] + 1) result += item[1] - item[0] + 1 # print(result) - +print(final_range) print("result",result) -# print("Всего найденно",len(set(valid_id))) \ No newline at end of file +# # print("Всего найденно",len(set(valid_id))) \ No newline at end of file diff --git a/2025/day05/txt.csv b/2025/day05/txt.csv index ed583ff..b4ce108 100644 --- a/2025/day05/txt.csv +++ b/2025/day05/txt.csv @@ -1,96 +1,192 @@ -555833573705560,559215810479919 -544342752994236,549627382712867 -537510887695323,541274271491753 -526877848613335,531769418916012 -512913115187844,522212556489529 -511011466557299,512131793619361 -510842576934065,511011466557299 -509753176570993,510393291709325 -508488661273440,509753176570993 -508322451869681,508488661273440 -507495917720818,508322451869681 -505832008521290,505975961783864 -505104443555011,505832008521290 -504458187396917,505104443555011 -503086524084926,504065580293871 -494784913066011,501597240077010 -483089733794802,491369062279098 -478021175479600,479930736974886 -474167461200457,478021175479598 -465490672375121,468431725509912 -458101242080111,459735586680247 -453367562612484,458101242080110 -445556790387619,450155783409432 -433402122350230,441711170197227 -426667061525753,431247335780190 -413736826181594,418488861381975 -403530779750380,409635941696016 -393603100982192,400007830526490 -390684582452296,391449542469449 -388889831860114,389361546156805 -388423796585171,388889831860114 -387342957634064,388005954603298 -385841628276504,387099868619227 -385225479724784,385723673485706 -384062303492569,384681216322539 -382831797388115,383309124794918 -382648957283633,382831797388115 -372200810499461,381433729807607 -364072252149354,370061666826845 -355549183562656,360109327235715 -344567544822203,349413296813607 -333644584620374,340399393006824 -326326266144577,330576407995732 -324591982604436,326326266144576 -316826876448244,321016747706186 -314135853034125,316826876448242 -302312839903088,308713144529633 -292189146068267,300967324704618 -282687875186246,290573385810295 -280560941578746,280797153772328 -280125341259925,280339825942875 -279382596997366,279864345611848 -278367096052324,278903864066962 -277035356038212,277546604653688 -276009863280048,276574216048609 -275896623740337,276009863280048 -275065584385558,275896623740337 -273854340853697,274280134169752 -271719450527280,272525238562354 -262500226361368,270297731427346 -251845737048447,260313551080106 -245990755269494,248893742631986 -242116221432604,245990755269493 -235069912732131,237384252443119 -222640894917879,230010012108940 -213450291588393,219119971121226 -194954655268286,199771011784310 -186228254165679,189071596736306 -171283517818167,180498038018267 -165784313527696,168271206713773 -161619191259504,165784313527694 -151767406860552,159742962812852 -144130629282646,150247654743912 -130978379637895,140394048108528 -121775884964558,128618774276447 -112391203212522,116378059614045 -105164107703885,108624239067649 -93620688615543,99279207187856 -84944235636755,86138442862850 -73539175943927,77764765758310 -63828445382687,66319099818520 -55910578479451,59894189259887 -52984642854639,55910578479449 -43160916427170,45877724695637 -32539515377401,39552166142220 -28856162040146,29629432995323 -27981167005022,28856162040146 -27210038719234,27981167005022 -26498060657296,26711566065301 -25714421842394,26498060657296 -23538316615171,24221552311396 -22290456485286,22692729552299 -21783298208719,22073106064922 -20990176320358,21783298208719 -4534370286402,8681339919277 -2429421839569,4534370286401 \ No newline at end of file +[555833573705560, 559215810479919] +[549627382712868, 549627382712868] +[544342752994236, 549627382712867] +[534245653016290, 541274271491753] +[537510887695323, 539044215275762] +[531769418916012, 531769418916012] +[526877848613335, 531769418916012] +[519683568682818, 522212556489529] +[518162422611315, 520950745027895] +[516423018174051, 519091775207170] +[515109478873629, 517495683097941] +[512913115187844, 515642888563446] +[511349366961406, 512131793619361] +[511011466557299, 511552853214448] +[510476184107394, 511349366961406] +[511011466557299, 511349366961406] +[510842576934065, 511011466557299] +[509753176570993, 510393291709325] +[509018882146052, 509753176570993] +[509018882146052, 509502046977823] +[508488661273440, 509276677007171] +[508322451869681, 508488661273440] +[507495917720818, 508322451869681] +[507495917720818, 508322451869681] +[505832008521290, 505975961783864] +[505104443555011, 505832008521290] +[505104443555011, 505832008521290] +[504458187396917, 505104443555011] +[503308838239220, 504065580293871] +[503413952419683, 504065580293871] +[503086524084926, 503743585734076] +[503086524084926, 503413952419683] +[494784913066011, 501597240077010] +[494784913066011, 498167064028657] +[487016888401411, 491369062279098] +[483089733794802, 489390213297377] +[478021175479600, 479930736974886] +[474167461200457, 478021175479598] +[465490672375121, 468431725509912] +[465490672375121, 465490672375121] +[458101242080111, 459735586680247] +[453367562612484, 458101242080110] +[445556790387619, 450155783409432] +[445556790387618, 445556790387618] +[436125903540293, 441711170197227] +[433402122350230, 441711170197227] +[426667061525753, 431247335780190] +[426667061525753, 431247335780190] +[418488861381976, 418488861381976] +[413736826181594, 418488861381975] +[403530779750380, 409635941696016] +[397792528499799, 400007830526490] +[393603100982192, 400007830526490] +[390980220354952, 391449542469449] +[390684582452296, 391234159025687] +[390684582452296, 390980220354952] +[388889831860114, 389361546156805] +[388889831860114, 389361546156805] +[388889831860114, 389071080230049] +[388423796585171, 388889831860114] +[387342957634064, 388005954603298] +[387342957634064, 387623731917135] +[387342957634064, 387623731917135] +[386422659840884, 387099868619227] +[385841628276504, 386571661375761] +[385841628276504, 386422659840884] +[385225479724784, 385723673485706] +[383904901114255, 384681216322539] +[383664721766973, 384349068653844] +[384062303492569, 384349068653844] +[382831797388115, 383309124794918] +[382648957283633, 382831797388115] +[379447000619953, 381433729807607] +[377803488342323, 380043331871171] +[376576415203668, 379024891568199] +[375402105087795, 377276019013753] +[373595872239842, 376153949657692] +[372200810499461, 374515104399369] +[364072252149354, 370061666826845] +[364072252149354, 370061666826845] +[352744784319508, 360109327235715] +[355549183562656, 357131374353477] +[344567544822203, 349413296813607] +[344567544822203, 344567544822203] +[336246743853147, 340399393006824] +[333644584620374, 338573759821678] +[326326266144577, 330576407995732] +[324591982604436, 326326266144576] +[316826876448244, 321016747706186] +[314135853034125, 316826876448242] +[308713144529633, 308713144529633] +[302312839903088, 308713144529633] +[292189146068267, 300967324704618] +[292189146068267, 296452677875083] +[282687875186246, 290573385810295] +[282687875186245, 282687875186245] +[280560941578746, 280797153772328] +[280125341259925, 280339825942875] +[279000533939266, 279864345611848] +[279638245686089, 279864345611848] +[279382596997366, 279864345611848] +[278616768463446, 278903864066962] +[278367096052324, 278903864066962] +[277035356038212, 277546604653688] +[276316745634127, 276574216048609] +[276009863280048, 276574216048609] +[275266146093339, 276009863280048] +[275896623740337, 276009863280048] +[275065584385558, 275896623740337] +[275065584385558, 275566500794453] +[273592028210036, 274280134169752] +[273854340853697, 274024542728739] +[271719450527280, 272525238562354] +[264370080722263, 270297731427346] +[262500226361368, 266985050326702] +[260313551080107, 260313551080107] +[251845737048447, 260313551080106] +[245990755269494, 248893742631986] +[242116221432604, 245990755269493] +[235069912732131, 237384252443119] +[222640894917879, 230010012108940] +[222640894917878, 222640894917878] +[213450291588393, 219119971121226] +[213450291588393, 213450291588393] +[202111706115290, 207756233368446] +[207756233368446, 207756233368446] +[194954655268286, 199771011784310] +[194954655268286, 199771011784310] +[183705568221799, 189071596736306] +[186228254165679, 189071596736306] +[178876097666360, 180498038018267] +[177752193355488, 179581693682093] +[176749120666081, 178569265941624] +[175627859415642, 177482247935029] +[174548214033672, 176306906159434] +[173582431345089, 174946432118089] +[172425283780688, 173775416617341] +[171283517818167, 172944007405098] +[165784313527696, 168271206713773] +[161619191259504, 165784313527694] +[151767406860552, 159742962812852] +[151767406860552, 155860754804167] +[141328738125022, 150247654743912] +[144130629282646, 146632275400232] +[138877057216283, 140394048108528] +[137682268842164, 139478866740539] +[136632031304123, 138019292297070] +[135493311412556, 136981253893885] +[134139266233899, 136187457665009] +[133364643548735, 134775188692192] +[132265725645056, 133973562548354] +[130978379637895, 132748218128171] +[123832484821933, 128618774276447] +[121775884964558, 127027983249936] +[112391203212522, 116378059614045] +[112391203212522, 116378059614045] +[101843397281159, 108624239067649] +[105164107703885, 108624239067649] +[92033247846894, 99279207187856] +[93620688615543, 97462575049962] +[84944235636755, 86138442862850] +[73539175943927, 77764765758310] +[73539175943926, 73539175943926] +[63828445382687, 66319099818520] +[63828445382687, 63828445382687] +[55910578479451, 59894189259887] +[52984642854639, 55910578479449] +[45877724695638, 45877724695638] +[43160916427170, 45877724695637] +[32539515377401, 39552166142220] +[32539515377401, 35356745216013] +[28856162040146, 29629432995323] +[28856162040146, 29270056624121] +[27981167005022, 28856162040146] +[27770026529097, 28263839799845] +[27981167005022, 28263839799845] +[27463398169403, 27981167005022] +[27463398169403, 27981167005022] +[27210038719234, 27770026529097] +[26498060657296, 26711566065301] +[25714421842394, 26498060657296] +[25714421842394, 26191239264992] +[23726069480801, 24221552311396] +[23538316615171, 24221552311396] +[23538316615171, 23931819056602] +[22290456485286, 22692729552299] +[21783298208719, 22073106064922] +[20990176320358, 21783298208719] +[14410238773697, 17960237709748] +[17960237709748, 17960237709748] +[4534370286402, 8681339919277] +[2429421839569, 4534370286401] \ No newline at end of file