-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathsegmentsunion.py
More file actions
62 lines (48 loc) · 1.89 KB
/
Copy pathsegmentsunion.py
File metadata and controls
62 lines (48 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""
Клумбы (segmentsunion.py)
Алла захотела, чтобы у неё под окном были узкие клумбы с тюльпанами. На схеме земельного участка клумбы обозначаются просто горизонтальными отрезками, лежащими на одной прямой. Для ландшафтных работы было нанято n садовников. Каждый из них обрабатывал какой-то отрезок на схеме. Процесс был организован не очень хорошо, иногда один и тот же отрезок или его часть могли быть обработаны сразу несколькими садовниками. Таким образом, отрезки, обрабатываемые двумя разными садовниками, сливаются в один. Непрерывный обработанный отрезок затем станет клумбой. Нужно определить границы будущих клумб. Рассмотрим примеры.
Примеры
4
7 8
7 8
2 3
6 10
2 3
6 10
4
2 3
5 6
3 4
3 4
2 4
5 6
6
1 3
3 5
4 6
5 6
2 4
7 10
1 6
7 10
"""
def segmentsUnion(data):
data.sort()
newData=[]
start=data[0][0]
end=data[0][1]
for i in range(n-1):
if end<data[i+1][0]:
newData.append('{} {}'.format(start,end))
start = data[i+1][0]
end = data[i+1][1]
elif data[i+1][1]>end:
end = data[i+1][1]
newData.append('{} {}'.format(start,end))
return newData
n=int(input())
if n>=1:
data=[]
for i in range(n):
data.append(tuple([int(x) for x in input().split(' ')]))
print('\n'.join(segmentsUnion(data)),end='')