jnxfzybt
This commit is contained in:
2382
2025/day05/input.txt
2382
2025/day05/input.txt
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,13 @@
|
|||||||
range_list: list[list:[str]] = [['1','5'],['7','8']]
|
range_list: list[list[str]] = [['1','5'],['7','8']]
|
||||||
items_list: list[int] = [1,2,3,6,16]
|
items_list: list[int] = [1,2,3,6,16]
|
||||||
valid_id: list[int] = []
|
valid_id: list[int] = []
|
||||||
final_range: list[list:[int]] = [[0,0]]
|
final_range: list[list[int]] = [[0,0]]
|
||||||
|
range_new_dict: dict[int,int] = {}
|
||||||
|
result: int = 0
|
||||||
|
|
||||||
input = """3-6
|
input = """3-6
|
||||||
|
1-10
|
||||||
|
2-2
|
||||||
5-5
|
5-5
|
||||||
10-14
|
10-14
|
||||||
16-20
|
16-20
|
||||||
@@ -31,10 +35,13 @@ input = """3-6
|
|||||||
# 228538610394597
|
# 228538610394597
|
||||||
# 557824039518207"""
|
# 557824039518207"""
|
||||||
|
|
||||||
# with open("input.txt", "r") as file:
|
with open("input.txt", "r") as file:
|
||||||
# input = file.read()
|
input = file.read()
|
||||||
range_list = list(map(list, [row.split("-") for row in input.split("\n\n")[0].strip().split("\n")]))
|
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")))
|
items_list = list(map(int, input.split("\n\n")[1].strip().split("\n")))
|
||||||
|
print("="*100)
|
||||||
|
print("range_list",len(range_list))
|
||||||
|
print("="*100)
|
||||||
# получаем все возможные не "протухшие" id продуктов
|
# получаем все возможные не "протухшие" id продуктов
|
||||||
# for index,i in enumerate(items_list):
|
# for index,i in enumerate(items_list):
|
||||||
# for element in range_list:
|
# for element in range_list:
|
||||||
@@ -45,29 +52,51 @@ for item in range_list:
|
|||||||
low_list.append(int(item[0]))
|
low_list.append(int(item[0]))
|
||||||
high_list.append(int(item[1]))
|
high_list.append(int(item[1]))
|
||||||
|
|
||||||
range_new_dict: dict[int,int] = {}
|
print("="*100)
|
||||||
|
print("high_list",len(high_list))
|
||||||
|
for i in high_list:
|
||||||
|
print(i)
|
||||||
|
print("="*100)
|
||||||
for low,high in zip(low_list, high_list):
|
for low,high in zip(low_list, high_list):
|
||||||
range_new_dict[int(high)] = int(low)
|
range_new_dict[int(high)] = int(low)
|
||||||
|
print("="*100)
|
||||||
|
print("range_new_dict",len(range_new_dict))
|
||||||
|
for key, value in range_new_dict.items():
|
||||||
|
print(f"{key}: {value}")
|
||||||
|
print("="*100)
|
||||||
high_list = sorted(high_list, reverse=True)
|
high_list = sorted(high_list, reverse=True)
|
||||||
final_range = [[0,high_list[0]]]
|
final_range = [[range_new_dict[high_list[0]],high_list[0]]]
|
||||||
for d in high_list:
|
print("BEGIN")
|
||||||
|
# print(f"{str(final_range[-1])}")
|
||||||
|
|
||||||
if d >= final_range[-1][0] and d != range_new_dict[d]:
|
for d in high_list[1:]:
|
||||||
|
# print("Обрабатываем пару\n",range_new_dict[d],d)
|
||||||
|
if final_range[-1][0] <= d <= final_range[-1][1] and range_new_dict[d] <= final_range[-1][0]:
|
||||||
|
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} <= {d} <= {str(final_range[-1][1])} and {str(range_new_dict[d])} <= {str(final_range[-1][0])}")
|
||||||
final_range[-1][0]= range_new_dict[d]
|
final_range[-1][0]= range_new_dict[d]
|
||||||
final_range[-1][1]= final_range[-1][1]
|
final_range[-1][1]= final_range[-1][1]
|
||||||
print("занесли изменения")
|
# print(f"Изменили последний в списке\n{str(final_range[-1])}")
|
||||||
# elif d == range_new_dict[d] and final_range[-1][1] < d:
|
elif final_range[-1][0] > d < final_range[-1][1] and range_new_dict[d] < final_range[-1][0]:
|
||||||
if d > final_range[-1][0] and d == range_new_dict[d]:
|
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} > {d} < {str(final_range[-1][1])} and {str(range_new_dict[d])} < {str(final_range[-1][0])}")
|
||||||
print("pass!!!")
|
final_range.append([range_new_dict[d],d])
|
||||||
|
# print(f"Добавили новы элемент в список\n{str(final_range[-1])}")
|
||||||
|
elif final_range[-1][0] < d < final_range[-1][1] and range_new_dict[d] > final_range[-1][0]:
|
||||||
|
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} < {d} < {str(final_range[-1][1])} and {str(range_new_dict[d])} > {str(final_range[-1][0])}")
|
||||||
|
# print(f"Проигнорировали\n{str(final_range[-1])}")
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print("bang!")
|
# print(f"УСЛОВИЕ\n{str(final_range[-1][0])} ? {d} ? {str(final_range[-1][1])} and {str(range_new_dict[d])} ? {str(final_range[-1][0])}")
|
||||||
final_range.append([range_new_dict[d],d])
|
# print("НЕ поймади!!!!!!!!!!!!\n",range_new_dict[d],d,"\n",str(final_range[-1]))
|
||||||
result: int = 0
|
pass
|
||||||
for item in final_range:
|
# print("="*100)
|
||||||
print(item)
|
# print(final_range)
|
||||||
result += item[1] - item[0] + 1
|
# print("="*100)
|
||||||
# print(result)
|
|
||||||
|
|
||||||
|
for item in final_range:
|
||||||
|
# print(item[1] - item[0] + 1)
|
||||||
|
result += item[1] - item[0] + 1
|
||||||
|
|
||||||
|
print("final_range",len(final_range))
|
||||||
|
print("range_new_dict",len(range_new_dict))
|
||||||
print("result",result)
|
print("result",result)
|
||||||
# print("Всего найденно",len(set(valid_id)))
|
# print("Всего найденно",len(set(valid_id)))
|
||||||
1139
2025/day05/resalt.txt
Normal file
1139
2025/day05/resalt.txt
Normal file
File diff suppressed because it is too large
Load Diff
160
2025/day05/test.txt
Normal file
160
2025/day05/test.txt
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
128296595656740: 128090435565893
|
||||||
|
520680231223961: 516646968075993
|
||||||
|
121469878351411: 121303722516259
|
||||||
|
187509500763042: 184451521773344
|
||||||
|
322319001484105: 322319001484105
|
||||||
|
280684888221717: 274806869508260
|
||||||
|
516646968075991: 514438413362009
|
||||||
|
138727668698066: 132349591532179
|
||||||
|
490068787056426: 486243537942013
|
||||||
|
56062629697162: 54623576419307
|
||||||
|
14102794073969: 11353860494207
|
||||||
|
207446516452508: 205001469839256
|
||||||
|
126230955401172: 125991199148198
|
||||||
|
148491040905647: 147729485142408
|
||||||
|
451484809123146: 451484809123146
|
||||||
|
359463520087035: 359053130524152
|
||||||
|
358352062518361: 357786441350792
|
||||||
|
142410145788221: 141922154874971
|
||||||
|
500162969228335: 498512861436809
|
||||||
|
143336045340736: 142712330197883
|
||||||
|
309614305380432: 305553988553089
|
||||||
|
18518550743963: 11353860494207
|
||||||
|
359241738138390: 359053130524152
|
||||||
|
360733119271015: 360209761509539
|
||||||
|
268765589443650: 268765589443650
|
||||||
|
541250620812775: 540370845452425
|
||||||
|
196962670293129: 192064547028079
|
||||||
|
144971713737752: 144445903486214
|
||||||
|
502183124179640: 500840968185735
|
||||||
|
352764008778800: 352205065835097
|
||||||
|
144209938381891: 143845537211324
|
||||||
|
246101052874062: 243911089658423
|
||||||
|
347024089877584: 345510954148422
|
||||||
|
250949254556108: 243911089658423
|
||||||
|
8620306610733: 1044968356565
|
||||||
|
538620689319205: 538034934899821
|
||||||
|
509422688282060: 503491050554325
|
||||||
|
205001469839256: 205001469839256
|
||||||
|
44713957162007: 42418322605745
|
||||||
|
257951604706781: 255291499440206
|
||||||
|
357578919024061: 356686924268999
|
||||||
|
373680822776436: 373680822776436
|
||||||
|
407995201288641: 405270266934611
|
||||||
|
58089521120112: 56469897323097
|
||||||
|
154536030528942: 151507101180182
|
||||||
|
540919835538807: 540370845452425
|
||||||
|
351499582176480: 349723679945308
|
||||||
|
84714690217557: 83435122631954
|
||||||
|
8620306610734: 8620306610734
|
||||||
|
361074865419872: 360733119271015
|
||||||
|
470067029665991: 463715551522546
|
||||||
|
463715551522545: 463715551522545
|
||||||
|
537199372458960: 536728486691148
|
||||||
|
76867276500306: 72964785871349
|
||||||
|
123858971349985: 122979858606629
|
||||||
|
537728593486491: 537199372458960
|
||||||
|
143138890837459: 142712330197883
|
||||||
|
348334471649737: 346514235578006
|
||||||
|
234964384798218: 233205523155060
|
||||||
|
190562887032622: 182346755020066
|
||||||
|
355042522902373: 354313332647316
|
||||||
|
420964506240332: 414428695514970
|
||||||
|
172774975945841: 170964436461788
|
||||||
|
268765589443649: 264752773214328
|
||||||
|
399919737975832: 394765607926923
|
||||||
|
440214621701724: 433084352729848
|
||||||
|
220116680452766: 215336323231110
|
||||||
|
535946752554745: 535334756689170
|
||||||
|
354313332647316: 353383191338668
|
||||||
|
121021248428266: 120716599623935
|
||||||
|
166469766895641: 162263036034040
|
||||||
|
358417507911555: 357786441350792
|
||||||
|
481582981972375: 478274169461818
|
||||||
|
175083680385657: 173402039804471
|
||||||
|
57019622066918: 55610960686943
|
||||||
|
53001016873213: 51565461964452
|
||||||
|
345043443452428: 343233055201654
|
||||||
|
105988002849265: 104529470195937
|
||||||
|
318782874805890: 315810311262719
|
||||||
|
328377829612349: 322319001484106
|
||||||
|
341490504875998: 332453909506765
|
||||||
|
353193079069012: 352515853732737
|
||||||
|
357014127583128: 356686924268999
|
||||||
|
122075834548422: 121815005485034
|
||||||
|
366040551504191: 363749098254248
|
||||||
|
494429027363041: 492956167989992
|
||||||
|
59159269639217: 57741057488985
|
||||||
|
356193014903068: 355562206590921
|
||||||
|
287334582134420: 283196666663541
|
||||||
|
289837321464177: 285207834707345
|
||||||
|
230286959305425: 222723629589749
|
||||||
|
357786441350792: 357014127583128
|
||||||
|
215336323231109: 215336323231109
|
||||||
|
53847767132647: 52414455015199
|
||||||
|
114550071877472: 114550071877472
|
||||||
|
89073721556903: 84714690217559
|
||||||
|
456761387005216: 454374340539320
|
||||||
|
345872527145502: 344403103725284
|
||||||
|
499138127579527: 497228218136475
|
||||||
|
296310126395247: 294257959023573
|
||||||
|
33116976702234: 33116976702234
|
||||||
|
124309257454445: 123515340573940
|
||||||
|
380277740620249: 373680822776436
|
||||||
|
478274169461817: 473572326249410
|
||||||
|
178276991688526: 176630628998032
|
||||||
|
158271739403219: 154536030528943
|
||||||
|
55038227688595: 53462051699403
|
||||||
|
533603905465383: 533449888714546
|
||||||
|
278420089957536: 271909537551301
|
||||||
|
127045854916286: 126737606530374
|
||||||
|
350353518727258: 348719529040708
|
||||||
|
352981220165049: 352205065835097
|
||||||
|
486243537942013: 486243537942013
|
||||||
|
123515340573940: 122813658263364
|
||||||
|
549728556538034: 544045044703613
|
||||||
|
179675424057861: 177943715924728
|
||||||
|
460118746229547: 454374340539320
|
||||||
|
451484809123145: 442946901104883
|
||||||
|
498096219419675: 496419306867766
|
||||||
|
431551616810758: 426473105763803
|
||||||
|
389256694479560: 384733173418522
|
||||||
|
528733568551118: 528733568551118
|
||||||
|
305553988553088: 304378656112241
|
||||||
|
495661623342158: 494154738613300
|
||||||
|
147470556387226: 147127768772571
|
||||||
|
142962560124315: 142410145788221
|
||||||
|
36362594463344: 33116976702235
|
||||||
|
149089620983943: 148491040905647
|
||||||
|
538481920549577: 538034934899821
|
||||||
|
51978209332872: 50628531324301
|
||||||
|
25647637586520: 21510975309678
|
||||||
|
145421164162861: 145197903285334
|
||||||
|
540125112314245: 539489330207205
|
||||||
|
238842053697119: 234964384798220
|
||||||
|
173876683612927: 172104549535423
|
||||||
|
67361498115628: 67361498115628
|
||||||
|
427865203454575: 424078106771771
|
||||||
|
99665822904286: 95134002207351
|
||||||
|
337339005423803: 335108425238189
|
||||||
|
358775435159048: 358417507911555
|
||||||
|
369322820735068: 363749098254248
|
||||||
|
501064537358521: 499381006144660
|
||||||
|
349389413930101: 347741108235009
|
||||||
|
343856975953052: 342193155992385
|
||||||
|
558418634540905: 555838442293911
|
||||||
|
540620249680923: 540370845452425
|
||||||
|
176044947582224: 174705771055447
|
||||||
|
122505865387822: 121815005485034
|
||||||
|
109978946486232: 101004158922811
|
||||||
|
300497055284581: 296310126395249
|
||||||
|
60069385470894: 58737078212031
|
||||||
|
149594229576463: 148944195643716
|
||||||
|
47941161579201: 44713957162008
|
||||||
|
560773839216269: 554358003043155
|
||||||
|
118157826889848: 114550071877472
|
||||||
|
496637580442970: 495276191731937
|
||||||
|
177389489675613: 175788501632135
|
||||||
|
420964506240333: 420964506240333
|
||||||
|
180821249282979: 178784675241648
|
||||||
|
96308486909196: 90737967071577
|
||||||
190
2025/day05/test2.txt
Normal file
190
2025/day05/test2.txt
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
128296595656740
|
||||||
|
520680231223961
|
||||||
|
121469878351411
|
||||||
|
187509500763042
|
||||||
|
322319001484105
|
||||||
|
280684888221717
|
||||||
|
516646968075991
|
||||||
|
138727668698066
|
||||||
|
490068787056426
|
||||||
|
56062629697162
|
||||||
|
14102794073969
|
||||||
|
207446516452508
|
||||||
|
126230955401172
|
||||||
|
148491040905647
|
||||||
|
451484809123146
|
||||||
|
359463520087035
|
||||||
|
358352062518361
|
||||||
|
142410145788221
|
||||||
|
500162969228335
|
||||||
|
143336045340736
|
||||||
|
309614305380432
|
||||||
|
18518550743963
|
||||||
|
359241738138390
|
||||||
|
360733119271015
|
||||||
|
268765589443650
|
||||||
|
541250620812775
|
||||||
|
196962670293129
|
||||||
|
144971713737752
|
||||||
|
502183124179640
|
||||||
|
352764008778800
|
||||||
|
144209938381891
|
||||||
|
246101052874062
|
||||||
|
347024089877584
|
||||||
|
250949254556108
|
||||||
|
8620306610733
|
||||||
|
538620689319205
|
||||||
|
509422688282060
|
||||||
|
205001469839256
|
||||||
|
44713957162007
|
||||||
|
257951604706781
|
||||||
|
357578919024061
|
||||||
|
373680822776436
|
||||||
|
407995201288641
|
||||||
|
144971713737752
|
||||||
|
58089521120112
|
||||||
|
154536030528942
|
||||||
|
540919835538807
|
||||||
|
351499582176480
|
||||||
|
84714690217557
|
||||||
|
8620306610734
|
||||||
|
361074865419872
|
||||||
|
470067029665991
|
||||||
|
196962670293129
|
||||||
|
463715551522545
|
||||||
|
537199372458960
|
||||||
|
76867276500306
|
||||||
|
123858971349985
|
||||||
|
537728593486491
|
||||||
|
509422688282060
|
||||||
|
143138890837459
|
||||||
|
348334471649737
|
||||||
|
234964384798218
|
||||||
|
190562887032622
|
||||||
|
541250620812775
|
||||||
|
355042522902373
|
||||||
|
420964506240332
|
||||||
|
76867276500306
|
||||||
|
172774975945841
|
||||||
|
268765589443649
|
||||||
|
399919737975832
|
||||||
|
355042522902373
|
||||||
|
440214621701724
|
||||||
|
220116680452766
|
||||||
|
535946752554745
|
||||||
|
354313332647316
|
||||||
|
121021248428266
|
||||||
|
166469766895641
|
||||||
|
358417507911555
|
||||||
|
481582981972375
|
||||||
|
175083680385657
|
||||||
|
57019622066918
|
||||||
|
53001016873213
|
||||||
|
138727668698066
|
||||||
|
345043443452428
|
||||||
|
126230955401172
|
||||||
|
540919835538807
|
||||||
|
143138890837459
|
||||||
|
105988002849265
|
||||||
|
318782874805890
|
||||||
|
328377829612349
|
||||||
|
341490504875998
|
||||||
|
353193079069012
|
||||||
|
357014127583128
|
||||||
|
122075834548422
|
||||||
|
366040551504191
|
||||||
|
494429027363041
|
||||||
|
59159269639217
|
||||||
|
356193014903068
|
||||||
|
287334582134420
|
||||||
|
289837321464177
|
||||||
|
230286959305425
|
||||||
|
357786441350792
|
||||||
|
215336323231109
|
||||||
|
53847767132647
|
||||||
|
114550071877472
|
||||||
|
89073721556903
|
||||||
|
456761387005216
|
||||||
|
345872527145502
|
||||||
|
257951604706781
|
||||||
|
499138127579527
|
||||||
|
296310126395247
|
||||||
|
33116976702234
|
||||||
|
124309257454445
|
||||||
|
380277740620249
|
||||||
|
478274169461817
|
||||||
|
178276991688526
|
||||||
|
158271739403219
|
||||||
|
55038227688595
|
||||||
|
533603905465383
|
||||||
|
278420089957536
|
||||||
|
127045854916286
|
||||||
|
350353518727258
|
||||||
|
440214621701724
|
||||||
|
352981220165049
|
||||||
|
486243537942013
|
||||||
|
123515340573940
|
||||||
|
549728556538034
|
||||||
|
179675424057861
|
||||||
|
537199372458960
|
||||||
|
460118746229547
|
||||||
|
451484809123145
|
||||||
|
498096219419675
|
||||||
|
431551616810758
|
||||||
|
389256694479560
|
||||||
|
528733568551118
|
||||||
|
305553988553088
|
||||||
|
495661623342158
|
||||||
|
147470556387226
|
||||||
|
142962560124315
|
||||||
|
36362594463344
|
||||||
|
149089620983943
|
||||||
|
538481920549577
|
||||||
|
51978209332872
|
||||||
|
25647637586520
|
||||||
|
399919737975832
|
||||||
|
389256694479560
|
||||||
|
145421164162861
|
||||||
|
123515340573940
|
||||||
|
540125112314245
|
||||||
|
238842053697119
|
||||||
|
173876683612927
|
||||||
|
67361498115628
|
||||||
|
356193014903068
|
||||||
|
540125112314245
|
||||||
|
427865203454575
|
||||||
|
541250620812775
|
||||||
|
144971713737752
|
||||||
|
99665822904286
|
||||||
|
337339005423803
|
||||||
|
360733119271015
|
||||||
|
358775435159048
|
||||||
|
358775435159048
|
||||||
|
369322820735068
|
||||||
|
501064537358521
|
||||||
|
528733568551118
|
||||||
|
349389413930101
|
||||||
|
343856975953052
|
||||||
|
558418634540905
|
||||||
|
127045854916286
|
||||||
|
540620249680923
|
||||||
|
176044947582224
|
||||||
|
67361498115628
|
||||||
|
407995201288641
|
||||||
|
122505865387822
|
||||||
|
109978946486232
|
||||||
|
230286959305425
|
||||||
|
300497055284581
|
||||||
|
60069385470894
|
||||||
|
149594229576463
|
||||||
|
47941161579201
|
||||||
|
560773839216269
|
||||||
|
144971713737752
|
||||||
|
118157826889848
|
||||||
|
496637580442970
|
||||||
|
177389489675613
|
||||||
|
420964506240333
|
||||||
|
538620689319205
|
||||||
|
180821249282979
|
||||||
|
142410145788221
|
||||||
|
96308486909196
|
||||||
13
2025/day05/отчаяние.py
Normal file
13
2025/day05/отчаяние.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
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")))
|
||||||
|
|
||||||
|
for i in range_list:
|
||||||
|
a = range(int(i[0]),int(i[1]))
|
||||||
|
a_list = list(a)
|
||||||
|
print(a)
|
||||||
|
# a_set = set(a_list)
|
||||||
|
|
||||||
|
# for b in a_set:
|
||||||
|
# print(b)
|
||||||
Reference in New Issue
Block a user