Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Задание 26 (№2480).
- На сайте министерства транспорта организовали приём жалоб автомобилистов на плохое качество дорог. К моменту, когда министерство выделило средства на ремонт одной из автомагистралей, на сайте накопилось уже некоторое количество жалоб. Каждая жалоба описывает начало и конец проблемного участка (примерное расстояние от начала автомагистрали в метрах). Так как жалобы писались независимо друг от друга разными людьми, некоторые описываемые участки автомагистрали накладываются друг на друга. Для планирования необходимых ремонтных ресурсов министерство решило узнать, сколько заявлено непрерывных участков дороги и какова их общая длина.
- Входные данные
- В первой строке входного файла находится число N - количество жалоб (натуральное число, не превышающее 10 000). В следующих N строках находится по два числа. Первое число - расстояние от начала автомагистрали до начала проблемного участка в метрах (натуральное число, не превышающее 2 000 000). Второе число - расстояние от начала автомагистрали до конца проблемного участка в метрах (натуральное число, не превышающее 2 000 000).
- Запишите в ответе два числа: количество непрерывных ремонтируемых участков автомагистрали и общую длину ремонтируемых участков. Пример входного файла:
- 7
- 10 40
- 50 130
- 70 130
- 75 90
- 120 170
- 140 170
- 150 180'''
- d = set()
- with open('/Users/alex26/Downloads/26_2480 (1).txt', 'r') as f:
- for _ in range(int(f.readline())):
- a = [int(x) for x in f.readline().strip().split()]
- for y in range(a[0], a[1] + 1):
- d.add(y)
- d = list(d)
- d.sort()
- roads = []
- prv = []
- for i in d:
- if not prv:
- prv.append(i)
- elif prv[-1] + 1 == i:
- prv.append(i)
- else:
- roads.append([prv[0], prv[-1]])
- prv = [i]
- if prv:
- roads.append(prv)
- print(len(roads), sum([max(i) - min(i) for i in roads])) #1222 822098; правильный ответ - 1226 822094
Add Comment
Please, Sign In to add comment