Submission #1146154

#TimeUsernameProblemLanguageResultExecution timeMemory
1146154wikidereBuilding Bridges (CEOI17_building)Pypy 3
0 / 100
148 ms48756 KiB
def min_bridge_cost(n, h, w): # Compute prefix sums for w prefix_w = [0] * (n + 1) for i in range(1, n + 1): prefix_w[i] = prefix_w[i - 1] + w[i - 1] # Initialize dp array dp = [float('inf')] * (n + 1) dp[1] = 0 # Cost to reach the first pillar is 0 # Fill dp array for i in range(2, n + 1): for j in range(1, i): # Cost to build bridge from j to i bridge_cost = (h[i - 1] - h[j - 1]) ** 2 # Cost to remove pillars between j and i removal_cost = prefix_w[i - 1] - prefix_w[j] # Total cost total_cost = dp[j] + bridge_cost + removal_cost # Update dp[i] if total_cost < dp[i]: dp[i] = total_cost return dp[n] # Example usage: n = 5 h = [1, 3, 2, 4, 5] w = [1, 2, 3, 4, 5] print(min_bridge_cost(n, h, w)) # Output the minimum cost

Compilation message (stdout)

Compiling 'building.py'...

=======
  adding: __main__.pyc (deflated 37%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...