Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1.                
  2. def forClient(curClient, sumMinus, used):
  3.     for j in range(0, m):
  4.         if j not in used and clientToClient[curClient][j]>0:
  5.             temp = p-sumMinus-clientToClient[curClient][j]
  6.             if sumMinus>=p:
  7.                 continue;
  8.             minToClient[j] = minToClient[j] - temp;
  9.             used.append(j);
  10.             forClient(j, sumMinus+clientToClient[curClient][j], used)
  11.            
  12. m, n, p, k = [int(x) for x in input().split()]
  13.  
  14. driverToClient = [[0 for x in range(m)] for y in range(n)];
  15.  
  16. for i in range(0, int(input())):
  17.     driver, client, r = [int(x) for x in input().split()]
  18.     driverToClient[driver][client] = r;
  19. #print(driverToClient);
  20.  
  21. clientToClient = [[0 for x in range(m)] for y in range(m)];
  22. for i in range(0, int(input())):
  23.     client1, client2, r = [int(x) for x in input().split()]
  24.     clientToClient[client1][client2] = r;
  25. #print(clientToClient);
  26.  
  27. minToClient = [k for x in range(m)];
  28.  
  29. for i in range(0,n):
  30.     used = [];
  31.     for j in range(0,m):
  32.         if driverToClient[i][j]==0:
  33.             continue;
  34.         minToClient[j] = minToClient[j] - (p-driverToClient[i][j]);
  35.         used.append(j);
  36.         forClient(j,driverToClient[i][j], used);
  37.  
  38.  
  39. print(min(minToClient))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement