Автор | Сообщение |
|
Отправлено: 18.05.23 20:44. Заголовок: Задача №5337
Имеется решение на python. Все по условию, сначала отфильтровываем по первому условию, потом перебираем все оригинальные пары и вставили флаг, чтобы не считались множество раз для одной строки, например из 4 одинаковых чисел. Получаю ответ 58. В чем я не прав? 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)
|
|
|
Ответов - 1
[только новые]
|
|
|
| Администратор
|
Сообщение: 3978
|
|
Отправлено: 03.06.23 22:05. Заголовок: Skryl Nikita пишет: ..
Skryl Nikita пишет: Когда вы написали for ln in f: вы перебираете все строки в файле. Это значит, что ln - очередная прочитанная строка и .readline вызываеть не нужно. Сделайте так: for ln in f: ln = list(map(int, ln.split())) Вот еще вариант: 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 )
|
|
|