Advertisement
GamerBhai02

Untitled

Jun 3rd, 2025 (edited)
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. def fractional_knapsack(capacity, items):
  2. items.sort(key=lambda x: x[0]/x[1], reverse=True)
  3. max_val = 0.0
  4. for value, weight in items:
  5. if capacity >= weight:
  6. max_val += value
  7. capacity -= weight
  8. else:
  9. return round(max_val + value * (capacity / weight), 6)
  10. return round(max_val, 6)
  11. n, w = map(int, input().split())
  12. item_list = list(map(int, input().split()))
  13. items = [(item_list[i],item_list[i+1]) for i in range(0, len(item_list), 2)]
  14. print(format(fractional_knapsack(w, items),".6f"))
  15.  
  16.  
  17. def floyd_warshall(n,edges):
  18. INF = float('inf')
  19. dist = [[INF] * n for _ in range(n)]
  20. for i in range(n):
  21. dist[i][i] = 0
  22. for u,v,w in edges:
  23. dist[u-1][v-1] = w
  24. for k in range(n):
  25. for i in range(n):
  26. for j in range(n):
  27. dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
  28. return dist
  29. n, e = int(input()), int(input())
  30. edges = [tuple(map(int, input().split())) for _ in range(e)]
  31. for row in floyd_warshall(n,edges):
  32. print(*["INF" if x == float('inf') else x for x in row],"")
  33.  
  34.  
  35. def warshall_algorithm(graph, n):
  36. # Only this function for codetantra
  37. for k in range(n):
  38. for i in range(n):
  39. for j in range(n):
  40. graph[i][j] |= graph[i][k] and graph[k][j]
  41. return graph
  42. # Till here
  43. n = int(input().strip())
  44. graph = [list(map(int, input().split())) for _ in range(n)]
  45. transitive_closure = warshall_algorithm(graph, n)
  46. for row in transitive_closure:
  47. print(" ".join(map(str, row)))
  48.  
  49.  
  50. def count_topo_sorts(v,edges):
  51. from collections import defaultdict
  52. adj = defaultdict(list)
  53. in_degree = [0]*V
  54. for u,v in edges:
  55. adj[u].append(v)
  56. in_degree[v] += 1
  57. visited = [False]*V
  58. count = [0]
  59. def backtrack(path):
  60. if len(path) == V:
  61. count[0] += 1
  62. return
  63. for i in range(V):
  64. if not visited[i] and in_degree[i]==0:
  65. visited[i] = True
  66. for neighbor in adj[i]:
  67. in_degree[neighbor] -= 1
  68. backtrack(path+[i])
  69. visited[i] = False
  70. for neighbor in adj[i]:
  71. in_degree[neighbor] += 1
  72. backtrack([])
  73. return count[0]
  74. V = int(input())
  75. E = int(input())
  76. edges = [tuple(map(int, input().split())) for _ in range(E)]
  77. print(count_topo_sorts(V, edges))
  78.  
  79.  
  80.  
  81. def subset_sum(arr,N,target_sum):
  82. for i in range(len(arr)):
  83. for j in range(len(arr)):
  84. if arr[i]+arr[j]==target_sum:
  85. return True
  86. return False
  87. N=int(input())
  88. arr=list(map(int, input().split()))
  89. target_sum=int(input())
  90.  
  91. print(subset_sum(arr,N,target_sum))
  92.  
  93.  
  94. def is_safe(board, row, col, N):
  95. for i in range(row):
  96. if board[i][col] == 1:
  97. return False
  98. i, j = row-1, col-1
  99. while i>=0 and j>=0:
  100. if board[i][j]==1:
  101. return False
  102. i-=1
  103. j-=1
  104. i, j = row-1, col+1
  105. while i>=0 and j<N:
  106. if board[i][j]==1:
  107. return False
  108. i-=1
  109. j+=1
  110. return True
  111. def solve_n_queens_util(board, row, N):
  112. if row==N:
  113. return True
  114. for col in range(N):
  115. if is_safe(board,row,col,N):
  116. board[row][col]=1
  117. if solve_n_queens_util(board,row+1,N):
  118. return True
  119. board[row][col] = 0
  120. return False
  121. def solve_n_queens(N):
  122. board = [[0 for _ in range(N)] for _ in range(N)]
  123. if solve_n_queens_util(board,0,N):
  124. print(f"Solution for {N}-Queens problem:")
  125. for row in board:
  126. print("".join(str(cell)+"\t" for cell in row))
  127. else:
  128. print(f"No solution exists for {N}-Queens problem")
  129. N = int(input("value of N: "))
  130. solve_n_queens(N)
  131.  
  132.  
  133. def isSafe(board, row, col):
  134. #horizantal
  135. for j in range(len(board)):
  136. if board[row] [j]==1:
  137. return False
  138. #vertical
  139. for i in range(len(board)):
  140. if board[i][col]==1:
  141. return False
  142. #diagonal left
  143. i=row
  144. j=col
  145. while(i>=0 and j>=0):
  146. if board[i][j]==1:
  147. return False
  148. i-=1
  149. j-=1
  150. #diagonal right
  151. i=row
  152. j=col
  153. while(i>=0 and j<len(board)):
  154. if board[i][j]==1:
  155. return False
  156. i-=1
  157. j+=1
  158. return True
  159.  
  160. def nQueens (board, row, solutions):
  161. n=len(board)
  162. if row==n:
  163. solutions.append ([row[:] for row in board])
  164. return
  165. #column iteration
  166. for j in range(n):
  167. if isSafe(board, row, j):
  168. board[row][j]=1
  169. nQueens (board, row+1, solutions)
  170. board[row][j]=0
  171.  
  172. def print_board(board):
  173. for row in board:
  174. print('\t'.join(map(str,row))+'\t')
  175.  
  176. def main():
  177. n=int(input("value of N: "))
  178. if n==2 or n==3:
  179. print(f"No solution exists for {n}-Queens problem")
  180. return
  181. board=[[0 for i in range(n)] for i in range(n)]
  182. solutions=[]
  183. nQueens(board, 0, solutions)
  184. print(f"Solution for {n}-Queens problem:")
  185. print_board(solutions[0])
  186. if name ==' main ':
  187. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement