ОНО РАБОТАЕТ

This commit is contained in:
2025-12-05 21:32:51 +03:00
parent ec30800900
commit dc0fb5a1d1
2 changed files with 224 additions and 115 deletions

View File

@@ -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 продуктов
@@ -45,29 +48,39 @@ 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)))
# # print("Всего найденно",len(set(valid_id)))

View File

@@ -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
[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]
1 555833573705560 [555833573705560 559215810479919 559215810479919]
2 544342752994236 [549627382712868 549627382712867 549627382712868]
3 537510887695323 [544342752994236 541274271491753 549627382712867]
4 526877848613335 [534245653016290 531769418916012 541274271491753]
5 512913115187844 [537510887695323 522212556489529 539044215275762]
6 511011466557299 [531769418916012 512131793619361 531769418916012]
7 510842576934065 [526877848613335 511011466557299 531769418916012]
8 509753176570993 [519683568682818 510393291709325 522212556489529]
9 508488661273440 [518162422611315 509753176570993 520950745027895]
10 508322451869681 [516423018174051 508488661273440 519091775207170]
11 507495917720818 [515109478873629 508322451869681 517495683097941]
12 505832008521290 [512913115187844 505975961783864 515642888563446]
13 505104443555011 [511349366961406 505832008521290 512131793619361]
14 504458187396917 [511011466557299 505104443555011 511552853214448]
15 503086524084926 [510476184107394 504065580293871 511349366961406]
16 494784913066011 [511011466557299 501597240077010 511349366961406]
17 483089733794802 [510842576934065 491369062279098 511011466557299]
18 478021175479600 [509753176570993 479930736974886 510393291709325]
19 474167461200457 [509018882146052 478021175479598 509753176570993]
20 465490672375121 [509018882146052 468431725509912 509502046977823]
21 458101242080111 [508488661273440 459735586680247 509276677007171]
22 453367562612484 [508322451869681 458101242080110 508488661273440]
23 445556790387619 [507495917720818 450155783409432 508322451869681]
24 433402122350230 [507495917720818 441711170197227 508322451869681]
25 426667061525753 [505832008521290 431247335780190 505975961783864]
26 413736826181594 [505104443555011 418488861381975 505832008521290]
27 403530779750380 [505104443555011 409635941696016 505832008521290]
28 393603100982192 [504458187396917 400007830526490 505104443555011]
29 390684582452296 [503308838239220 391449542469449 504065580293871]
30 388889831860114 [503413952419683 389361546156805 504065580293871]
31 388423796585171 [503086524084926 388889831860114 503743585734076]
32 387342957634064 [503086524084926 388005954603298 503413952419683]
33 385841628276504 [494784913066011 387099868619227 501597240077010]
34 385225479724784 [494784913066011 385723673485706 498167064028657]
35 384062303492569 [487016888401411 384681216322539 491369062279098]
36 382831797388115 [483089733794802 383309124794918 489390213297377]
37 382648957283633 [478021175479600 382831797388115 479930736974886]
38 372200810499461 [474167461200457 381433729807607 478021175479598]
39 364072252149354 [465490672375121 370061666826845 468431725509912]
40 355549183562656 [465490672375121 360109327235715 465490672375121]
41 344567544822203 [458101242080111 349413296813607 459735586680247]
42 333644584620374 [453367562612484 340399393006824 458101242080110]
43 326326266144577 [445556790387619 330576407995732 450155783409432]
44 324591982604436 [445556790387618 326326266144576 445556790387618]
45 316826876448244 [436125903540293 321016747706186 441711170197227]
46 314135853034125 [433402122350230 316826876448242 441711170197227]
47 302312839903088 [426667061525753 308713144529633 431247335780190]
48 292189146068267 [426667061525753 300967324704618 431247335780190]
49 282687875186246 [418488861381976 290573385810295 418488861381976]
50 280560941578746 [413736826181594 280797153772328 418488861381975]
51 280125341259925 [403530779750380 280339825942875 409635941696016]
52 279382596997366 [397792528499799 279864345611848 400007830526490]
53 278367096052324 [393603100982192 278903864066962 400007830526490]
54 277035356038212 [390980220354952 277546604653688 391449542469449]
55 276009863280048 [390684582452296 276574216048609 391234159025687]
56 275896623740337 [390684582452296 276009863280048 390980220354952]
57 275065584385558 [388889831860114 275896623740337 389361546156805]
58 273854340853697 [388889831860114 274280134169752 389361546156805]
59 271719450527280 [388889831860114 272525238562354 389071080230049]
60 262500226361368 [388423796585171 270297731427346 388889831860114]
61 251845737048447 [387342957634064 260313551080106 388005954603298]
62 245990755269494 [387342957634064 248893742631986 387623731917135]
63 242116221432604 [387342957634064 245990755269493 387623731917135]
64 235069912732131 [386422659840884 237384252443119 387099868619227]
65 222640894917879 [385841628276504 230010012108940 386571661375761]
66 213450291588393 [385841628276504 219119971121226 386422659840884]
67 194954655268286 [385225479724784 199771011784310 385723673485706]
68 186228254165679 [383904901114255 189071596736306 384681216322539]
69 171283517818167 [383664721766973 180498038018267 384349068653844]
70 165784313527696 [384062303492569 168271206713773 384349068653844]
71 161619191259504 [382831797388115 165784313527694 383309124794918]
72 151767406860552 [382648957283633 159742962812852 382831797388115]
73 144130629282646 [379447000619953 150247654743912 381433729807607]
74 130978379637895 [377803488342323 140394048108528 380043331871171]
75 121775884964558 [376576415203668 128618774276447 379024891568199]
76 112391203212522 [375402105087795 116378059614045 377276019013753]
77 105164107703885 [373595872239842 108624239067649 376153949657692]
78 93620688615543 [372200810499461 99279207187856 374515104399369]
79 84944235636755 [364072252149354 86138442862850 370061666826845]
80 73539175943927 [364072252149354 77764765758310 370061666826845]
81 63828445382687 [352744784319508 66319099818520 360109327235715]
82 55910578479451 [355549183562656 59894189259887 357131374353477]
83 52984642854639 [344567544822203 55910578479449 349413296813607]
84 43160916427170 [344567544822203 45877724695637 344567544822203]
85 32539515377401 [336246743853147 39552166142220 340399393006824]
86 28856162040146 [333644584620374 29629432995323 338573759821678]
87 27981167005022 [326326266144577 28856162040146 330576407995732]
88 27210038719234 [324591982604436 27981167005022 326326266144576]
89 26498060657296 [316826876448244 26711566065301 321016747706186]
90 25714421842394 [314135853034125 26498060657296 316826876448242]
91 23538316615171 [308713144529633 24221552311396 308713144529633]
92 22290456485286 [302312839903088 22692729552299 308713144529633]
93 21783298208719 [292189146068267 22073106064922 300967324704618]
94 20990176320358 [292189146068267 21783298208719 296452677875083]
95 4534370286402 [282687875186246 8681339919277 290573385810295]
96 2429421839569 [282687875186245 4534370286401 282687875186245]
97 [280560941578746 280797153772328]
98 [280125341259925 280339825942875]
99 [279000533939266 279864345611848]
100 [279638245686089 279864345611848]
101 [279382596997366 279864345611848]
102 [278616768463446 278903864066962]
103 [278367096052324 278903864066962]
104 [277035356038212 277546604653688]
105 [276316745634127 276574216048609]
106 [276009863280048 276574216048609]
107 [275266146093339 276009863280048]
108 [275896623740337 276009863280048]
109 [275065584385558 275896623740337]
110 [275065584385558 275566500794453]
111 [273592028210036 274280134169752]
112 [273854340853697 274024542728739]
113 [271719450527280 272525238562354]
114 [264370080722263 270297731427346]
115 [262500226361368 266985050326702]
116 [260313551080107 260313551080107]
117 [251845737048447 260313551080106]
118 [245990755269494 248893742631986]
119 [242116221432604 245990755269493]
120 [235069912732131 237384252443119]
121 [222640894917879 230010012108940]
122 [222640894917878 222640894917878]
123 [213450291588393 219119971121226]
124 [213450291588393 213450291588393]
125 [202111706115290 207756233368446]
126 [207756233368446 207756233368446]
127 [194954655268286 199771011784310]
128 [194954655268286 199771011784310]
129 [183705568221799 189071596736306]
130 [186228254165679 189071596736306]
131 [178876097666360 180498038018267]
132 [177752193355488 179581693682093]
133 [176749120666081 178569265941624]
134 [175627859415642 177482247935029]
135 [174548214033672 176306906159434]
136 [173582431345089 174946432118089]
137 [172425283780688 173775416617341]
138 [171283517818167 172944007405098]
139 [165784313527696 168271206713773]
140 [161619191259504 165784313527694]
141 [151767406860552 159742962812852]
142 [151767406860552 155860754804167]
143 [141328738125022 150247654743912]
144 [144130629282646 146632275400232]
145 [138877057216283 140394048108528]
146 [137682268842164 139478866740539]
147 [136632031304123 138019292297070]
148 [135493311412556 136981253893885]
149 [134139266233899 136187457665009]
150 [133364643548735 134775188692192]
151 [132265725645056 133973562548354]
152 [130978379637895 132748218128171]
153 [123832484821933 128618774276447]
154 [121775884964558 127027983249936]
155 [112391203212522 116378059614045]
156 [112391203212522 116378059614045]
157 [101843397281159 108624239067649]
158 [105164107703885 108624239067649]
159 [92033247846894 99279207187856]
160 [93620688615543 97462575049962]
161 [84944235636755 86138442862850]
162 [73539175943927 77764765758310]
163 [73539175943926 73539175943926]
164 [63828445382687 66319099818520]
165 [63828445382687 63828445382687]
166 [55910578479451 59894189259887]
167 [52984642854639 55910578479449]
168 [45877724695638 45877724695638]
169 [43160916427170 45877724695637]
170 [32539515377401 39552166142220]
171 [32539515377401 35356745216013]
172 [28856162040146 29629432995323]
173 [28856162040146 29270056624121]
174 [27981167005022 28856162040146]
175 [27770026529097 28263839799845]
176 [27981167005022 28263839799845]
177 [27463398169403 27981167005022]
178 [27463398169403 27981167005022]
179 [27210038719234 27770026529097]
180 [26498060657296 26711566065301]
181 [25714421842394 26498060657296]
182 [25714421842394 26191239264992]
183 [23726069480801 24221552311396]
184 [23538316615171 24221552311396]
185 [23538316615171 23931819056602]
186 [22290456485286 22692729552299]
187 [21783298208719 22073106064922]
188 [20990176320358 21783298208719]
189 [14410238773697 17960237709748]
190 [17960237709748 17960237709748]
191 [4534370286402 8681339919277]
192 [2429421839569 4534370286401]