Форум » Электронные таблицы » Задача №5337 » Ответить

Задача №5337

Skryl Nikita: Имеется решение на python. Все по условию, сначала отфильтровываем по первому условию, потом перебираем все оригинальные пары и вставили флаг, чтобы не считались множество раз для одной строки, например из 4 одинаковых чисел. Получаю ответ 58. В чем я не прав? [pre2] f = open('1.txt', 'r') k = 0 for ln in f: ln = list(map(int, f.readline().split())) ma = max(ln) s = sum(ln) - ma s1 = sum(ln) if s > ma: flag = True for i in range(len(ln)): for j in range(i + 1, len(ln)): if (ln[i ] + ln[j]) == (s1 - (ln[i ] + ln[j])) and flag: k += 1 flag = False print(k)[/pre2]

Ответов - 1

Поляков: Skryl Nikita пишет: В чем я не прав? Когда вы написали [pre2]for ln in f:[/pre2] вы перебираете все строки в файле. Это значит, что ln - очередная прочитанная строка и .readline вызываеть не нужно. Сделайте так: [pre2] for ln in f: ln = list(map(int, ln.split())) [/pre2]Вот еще вариант: [pre2] count = 0 for s in open('9-160.txt'): data = sorted( map(int, s.split()) ) if data[-1] < sum(data[:-1]) and\ data[0]+data[-1] == data[1]+data[2]: count += 1 print( count )[/pre2]



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