Lang:Python2
Edit12345678910111213141516171819202122import heapqN,M,K = map(int, raw_input().split())sequences = [[] for i in range(N)]finishs = [0 for i in range(N)]offices = [0 for i in range(M)]dealList = []for i in range(N):tmp = map(int, raw_input().split())sequences[i] = [(0,0) for n in range(tmp[2])]for j in range(tmp[2]):sequences[i][j] = (tmp[3+j*2]-1, tmp[4+j*2])heapq.heappush(dealList, (tmp[1]+K, tmp[0], i, 1))while len(dealList) > 0:(start, sid, no, sNum ) = heapq.heappop(dealList)seque = sequences[no][sNum-1]finishs[no] = offices[seque[0]] = max(start, offices[seque[0]]) + seque[1]if len(sequences[no]) > sNum:heapq.heappush(dealList, (finishs[no]+K, sid, no, sNum+1))print '\n'.join(str(i) for i in finishs)