Advertisement
Pastehsjsjs

Untitled

May 14th, 2023
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | Source Code | 0 0
  1. with open('/Users/alex26/Downloads/26_3088 (1).txt', 'r') as f:
  2.     _ = f.readline()
  3.     data = [(int(i.split()[0]), int(i.split()[1])) for i in f.read().strip().split('\n')]
  4.     data.sort(key=lambda x: (x[1], x[0]))
  5.     orders_by_id = {}
  6.  
  7. for start_time, idx in data:
  8.     if idx not in orders_by_id.keys():
  9.         orders_by_id[idx] = [[]]
  10.  
  11.     if not orders_by_id[idx][-1]:
  12.         orders_by_id[idx][-1].append(start_time)
  13.     elif len(orders_by_id[idx][-1]) == 1:
  14.         orders_by_id[idx][-1].append(start_time)
  15.         orders_by_id[idx].append([])
  16.  
  17. 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])}
  18. print(orders_by_id)
  19.  
  20. def summa(x):
  21.     s = 0
  22.     for a1, a2 in x:
  23.         s += a2 - a1
  24.     return s
  25.  
  26.  
  27. max_last_id = max([[k, summa(v) / len(v)] for k, v in orders_by_id.items()], key=lambda x: x[1])[0]
  28.  
  29. min_t = min([min(j) for i in orders_by_id.values() for j in i])
  30. max_t = max([max(j) for i in orders_by_id.values() for j in i])
  31. c_max = 0
  32. for i in range(min_t, max_t - 59):
  33.     c = 0
  34.     start, end = i, i + 60
  35.     for key, val in orders_by_id.items():
  36.         for item in val:
  37.             if item[1] <= end and item[0] >= start:
  38.                 c += 1
  39.  
  40.     c_max = max(c, c_max)
  41. print(c_max, max_last_id) #190 129
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement