1 Dynamic Programming
1 Dynamic Programming
def primitive_calculator(n):
operations = [0] * (n + 1)
parent = [0] * (n + 1)
# If divisible by 2
if i % 2 == 0 and operations[i // 2] + 1 < min_ops:
min_ops = operations[i // 2] + 1
pred = i // 2
# If divisible by 3
if i % 3 == 0 and operations[i // 3] + 1 < min_ops:
min_ops = operations[i // 3] + 1
pred = i // 3
operations[i] = min_ops
parent[i] = pred
# Example usage:
if __name__ == "__main__":
n = int(input())
min_ops, seq = primitive_calculator(n)
print(min_ops)
print(" ".join(map(str, seq)))
return dp[W]
# Read input
if __name__ == "__main__":
n, W = map(int, input().split())
items = [tuple(map(int, input().split())) for _ in range(n)]
print(knapsack(n, W, items))
2 Greedy Algorithms
def activity_selection(activities):
# Sort activities by finish time
activities.sort(key=lambda x: x[1])
count = 0
last_finish_time = 0
return count
# Input reading
n = int(input())
activities = [tuple(map(int, input().split())) for _ in range(n)]
# Output result
print(activity_selection(activities))