https://atcoder.jp/contests/dp/tasks/dp_a
Problem Statement
There are stones, numbered . For each (), the height of Stone is .
There is a frog who is initially on Stone . He will repeat the following action some number of times to reach Stone :
- If the frog is currently on Stone , jump to Stone or Stone . Here, a cost of is incurred, where is the stone to land on.
Find the minimum possible total cost incurred before the frog reaches Stone .
Constraints
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
Print the minimum possible total cost incurred.
Sample Input 1 Copy
Copy
4 10 30 40 20
Sample Output 1 Copy
Copy
30
If we follow the path → → , the total cost incurred would be .
Sample Input 2 Copy
Copy
2 10 10
Sample Output 2 Copy
Copy
0
If we follow the path → , the total cost incurred would be .
Sample Input 3 Copy
Copy
6 30 10 60 10 60 50
Sample Output 3 Copy
Copy
40
If we follow the path → → → , the total cost incurred would be .
Solution:
This problem can be solved using dynamic programming.
Let dp[i] be the minimum total cost to reach ith stone.
Then :
Then :
dp[i] = min(dp[i - 2] + abs(h[i] - h[i - 2] ,
dp[i - 1] + abs(h[i] - h[i - 1]]);
For 0th and 1st stones:
dp[0] = 0;
dp[1] = abs(h[1] - h[0])
0 comments:
Post a Comment