Có N bậc đá được đánh số từ 1 đến N; bậc i có độ cao hi. Một robot bắt đầu ở bậc 1. Từ bậc i, robot được chuyển đến bậc i+1 hoặc i+2 nếu bậc đó tồn tại. Mỗi lần chuyển từ i sang j tốn ∣hi−hj∣ đơn vị năng lượng. Hãy tìm tổng năng lượng nhỏ nhất để robot đến bậc N.
Input
Dòng đầu chứa số nguyên N.
Dòng thứ hai chứa N số nguyên h1,h2,…,hN.
Output
In một số nguyên là tổng chi phí nhỏ nhất để đến bậc N.
Constraints
2≤N≤105.
1≤hi≤104 với mọi i.
Scoring
Subtask 1 (50% số điểm): N≤12.
Subtask 2 (50% số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
5
8 13 4 10 7
Output
7
Giải thích: Có thể đi qua các bậc 1→3→5, tốn ∣8−4∣+∣4−7∣=7. Mọi đường đi khác đều có tổng chi phí không nhỏ hơn.
Lời giải tóm tắt
Ý tưởng: Đặt dp[i] là tổng năng lượng nhỏ nhất để đến bậc i. Ta có dp[1]=0, dp[2]=|h_2-h_1|; với i≥3:
Chứng minh tính đúng đắn: Ta chứng minh bằng quy nạp theo i. Hai giá trị cơ sở đúng trực tiếp. Với i≥3, bước cuối của mọi đường đi tới i phải xuất phát từ đúng một trong hai bậc i-1 hoặc i-2. Theo giả thiết quy nạp, chi phí tốt nhất để tới mỗi bậc tiền nhiệm lần lượt là dp[i-1] và dp[i-2]; cộng chi phí bước cuối rồi lấy giá trị nhỏ hơn vì thế xét đủ mọi đường đi và chọn đúng đường có chi phí nhỏ nhất. Do đó dp[N] là đáp án.