Форум » Обработка числовых последовательностей » Задача 51 егэ 27 » Ответить

Задача 51 егэ 27

romad: Ранее было предложено решение: [pre2] F = open( "27-51b.txt" ) N = int(F.readline()) sMin = 0 odd = 0 diff = [] for i in range(N): a, b = sorted( map(int, F.readline().split()) ) odd += a % 2 if a % 2 != b % 2: deltaEven = 1 if b % 2 == 0 else -1 diff.append( (abs(a-b), deltaEven, a, b) ) sMin += a F.close() diff.sort() even = N - odd print( sMin, (even, odd) ) #print( diff ) if not(sMin % 2 != (odd > even)): print( "Коррекция:" ) while not(sMin % 2 != (odd > even)): dS, deltaEven, a, b = diff.pop(0) sMin += dS odd -= deltaEven even += deltaEven print( sMin, (even, odd), b, '<-', a ) print( "Ответ:", sMin ) на следующее решение: F = open( "27-51b.txt" ) N = int(F.readline()) sMin = 0 odd = 0 INF = 1e10 diff = [[INF, INF], [INF, INF]] for i in range(N): a, b = sorted( map(int, F.readline().split()) ) odd += a % 2 if a % 2 != b % 2: diff[b % 2].append( b-a ) sMin += a F.close() print(diff) even = N - odd print( sMin, (even, odd) ) diff[0] = sorted(diff[0])[:2] diff[1] = sorted(diff[1])[:2] print(diff) delta0 = delta1 = 0 if sMin % 2 == (odd > even): print( "Коррекция..." ) print( diff[0] ) print( diff[1] ) if abs(even-odd) > 1: delta0, delta1 = diff[0][0], diff[1][0] # добавить чётное или нечётное elif even > odd: # even = odd + 1 delta0 = diff[0][0] # добавить чётное delta1 = diff[1][0] + diff[1][1] # добавить два нечётных else: # odd = even + 1 delta1 = diff[1][0] # добавить нечётное delta0 = diff[0][0] + diff[0][1] # добавить два чётных sMin += min(delta0, delta1) print( "Ответ:", sMin )[/pre2]Зачем было менять? Эти две программы дают одинаковые ответы, но первое решение мне кажется проще, а потому и лучше

Ответов - 2

nikson: romad пишет: Зачем было менять? Эти две программы дают одинаковые ответы, но первое решение мне кажется проще, а потому и лучше Кому-то проще, а кому-то нет. Чем больше разнообразных разборов (кодов), тем лучше. Каждый найдет что понятно лично ему.

Поляков: romad пишет: Зачем было менять? На самом деле программы не одинаковые. Изменения внесены на основании этой темы.



полная версия страницы