Я задавал вопрос о codechef и застрял в этой проблеме: https://www.codechef.com/problems/TLG
В этой задаче мы должны ввести нет. который будет нет. тестовых случаев задачи. Затем нам нужно будет ввести еще два целых числа. Эти целые числа возьмут
счет игроков в формате "a b". Наконец, программа отобразит преимущество в матче, в котором конкретный игрок имел максимальное преимущество, и номер игрока (т.е. 1 или 2). Моя программа такова:
import operator
from operator import itemgetter
p = []
k = []
u = []
for r in range(int(input())):
one,two = input().split()
one = int(one)
two = int(two)
p.append((one,two))
for (one,two) in p:
if (one)> (two):
y = (one) - (two)
m =1
else:
y = (two) - (one)
m = 2
k.append((m,y))
foo = k
foo.sort(key=lambda x:x[1])
h = foo[-1]
u.append(h)
b = list(map(operator.itemgetter(0), u))
r = list(map(operator.itemgetter(1), u))
print(b[0],r[0])
В чем проблема в моей программе? Сайт показал, что мой ответ неверный.
Тогда я искал другие представления и нашел:
t = int(input())
p1 = 0
p2 = 0
maxi = 0
leader = 1
for i in range(t):
x,y = map(int,input().split())
p1+=x
p2+=y
if abs(p1-p2) > maxi:
leader = 1 if p1 > p2 else 2
maxi = abs(p1-p2)
print('{} {}'.format(leader,maxi))
Я хочу знать, как эта программа печатает максимальный отрыв и проигрыватель. Он не использует функции массива и сортировки, тогда как он запоминает все выходные данные и их значения.