Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with open('/Users/alex26/Downloads/26_3088 (1).txt', 'r') as f:
- _ = f.readline()
- data = [(int(i.split()[0]), int(i.split()[1])) for i in f.read().strip().split('\n')]
- data.sort(key=lambda x: (x[1], x[0]))
- orders_by_id = {}
- for start_time, idx in data:
- if idx not in orders_by_id.keys():
- orders_by_id[idx] = [[]]
- if not orders_by_id[idx][-1]:
- orders_by_id[idx][-1].append(start_time)
- elif len(orders_by_id[idx][-1]) == 1:
- orders_by_id[idx][-1].append(start_time)
- orders_by_id[idx].append([])
- orders_by_id = {k: [i for i in v if len(i) == 2] for k, v in orders_by_id.items() if any([len(i) == 2 for i in v])}
- print(orders_by_id)
- def summa(x):
- s = 0
- for a1, a2 in x:
- s += a2 - a1
- return s
- max_last_id = max([[k, summa(v) / len(v)] for k, v in orders_by_id.items()], key=lambda x: x[1])[0]
- min_t = min([min(j) for i in orders_by_id.values() for j in i])
- max_t = max([max(j) for i in orders_by_id.values() for j in i])
- c_max = 0
- for i in range(min_t, max_t - 59):
- c = 0
- start, end = i, i + 60
- for key, val in orders_by_id.items():
- for item in val:
- if item[1] <= end and item[0] >= start:
- c += 1
- c_max = max(c, c_max)
- print(c_max, max_last_id) #190 129
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement