import heapq def getAvgWaitTime(n, cust): heap = [] curTime = 0 waitTime = 0 cust = sorted(cust) i = 0 while i < n: if curTime < cust[i][0]: curTime = cust[i][0] while i < n and (curTime >= cust[i][0]): heapq.heappush(heap, (cust[i][1], cust[i][0])) i += 1 while (i < n) and curTime < cust[i][0] and len(heap) > 0: time, wait = calculateWaiting(heap, curTime) curTime += time waitTime += wait # Clear all the jobs while len(heap) > 0: time, wait = calculateWaiting(heap, curTime) curTime += time waitTime += wait return waitTime / n def calculateWaiting(heap, curTime): wait = 0 cur = heapq.heappop(heap) wait = curTime - cur[1] + cur[0] return (cur[0], wait) n = int(raw_input().strip()) cust = [] for i in range(n): ar = map(int, raw_input().strip().split(' ')) cust.append((ar[0], ar[1])) result = getAvgWaitTime(n, cust) print(result)