Форум » Массивы, сортировка, работа с файлами » 6792 не сходится ответ » Ответить

6792 не сходится ответ

kamilsharipov1: Добрый вечер! f = open('26-130.txt') n = int(f.readline()) p = [] a = [0] * 1441 a[0] = ' ' for i in range(n): st, end = map(int, f.readline().split()) a[st + 1] += 1 a[end + 1] -= 1 k = 0 maxk = 0 p.append('') for i in range(1, 1441): k += a p.append(k) maxk = max(maxk, k) for i in range(1, 1441): if int(p) != maxk: [p] = ' ' else: p = '*' s = '' for i in range(1, 1441): s += p ans = len(s.split()) print(ans, maxk) Ответ, который предлагают в примере, сходится (2 4), а с файлом проблема. Получается количество пиков на 1 больше, а само пиковое значение на 1 меньше (2 643). Буду рад Вашей помощи!

Ответов - 2

Skov: Я делал эту задачу и попал в ответы. Код писал по другому. Возможно, Вы не совсем верно проходите пиковые плато. Если надо, могу выложить свой код.

Alex_R: [pre2] with open('26-130.txt') as f: data = [tuple(map(int, x.split())) for x in f.readlines()[1:]] timeline = [0] * 1440 for arrive, leave in data: for i in range(arrive, leave + 1): timeline += 1 peak = max(timeline) peak_timeline = ''.join(['1' if x == peak else ' ' for x in timeline]) print(len(peak_timeline.split()), peak) [/pre2]



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