Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def forClient(curClient, sumMinus, used):
- for j in range(0, m):
- if j not in used and clientToClient[curClient][j]>0:
- temp = p-sumMinus-clientToClient[curClient][j]
- if sumMinus>=p:
- continue;
- minToClient[j] = minToClient[j] - temp;
- used.append(j);
- forClient(j, sumMinus+clientToClient[curClient][j], used)
- m, n, p, k = [int(x) for x in input().split()]
- driverToClient = [[0 for x in range(m)] for y in range(n)];
- for i in range(0, int(input())):
- driver, client, r = [int(x) for x in input().split()]
- driverToClient[driver][client] = r;
- #print(driverToClient);
- clientToClient = [[0 for x in range(m)] for y in range(m)];
- for i in range(0, int(input())):
- client1, client2, r = [int(x) for x in input().split()]
- clientToClient[client1][client2] = r;
- #print(clientToClient);
- minToClient = [k for x in range(m)];
- for i in range(0,n):
- used = [];
- for j in range(0,m):
- if driverToClient[i][j]==0:
- continue;
- minToClient[j] = minToClient[j] - (p-driverToClient[i][j]);
- used.append(j);
- forClient(j,driverToClient[i][j], used);
- print(min(minToClient))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement