Cổ phiếu
Xem PDF
Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
367M
Input:
bàn phím
Output:
màn hình
Bạn biết chính xác giá của một cổ phiếu trong \( N \) ngày sắp tới. Bạn muốn tận dụng điều này để kiếm lợi nhuận, nhưng bạn chỉ được phép giao dịch đúng một cổ phiếu mỗi ngày.
Mỗi ngày, bạn có thể:
- Mua một cổ phiếu, hoặc
- Bán một cổ phiếu, hoặc
- Không làm gì cả.
Ban đầu, bạn không sở hữu cổ phiếu nào, và đến cuối cùng (sau \( N \) ngày) bạn cũng phải kết thúc với 0 cổ phiếu.
Nhiệm vụ của bạn là tính toán số tiền tối đa bạn có thể có được vào cuối \( N \) ngày nếu thực hiện các giao dịch một cách tối ưu.
Input
- Dòng đầu tiên chứa một số nguyên \( N \) — số ngày (\( 2 \le N \le 3 \times 10^5 \)).
- Dòng thứ hai chứa \( N \) số nguyên \( p_1, p_2, ..., p_N \) (\( 1 \le p_i \le 10^6 \)) — giá cổ phiếu vào ngày thứ \( i \).
Output
In ra số tiền tối đa mà bạn có thể có được vào cuối \( N \) ngày.
Ví dụ
Test 1
Input
9
10 5 4 7 9 12 6 2 10
Output
20
Note
Giải thích:
- Mua ở ngày có giá 5, rồi mua thêm ở ngày có giá 4.
- Bán ở ngày có giá 9, rồi lại mua ở ngày 6 và bán ở 12.
- Sau đó mua ở ngày có giá 2 và bán ở ngày có giá 10.
Tổng lợi nhuận: \(-5 - 4 + 9 + 12 -2 + 10 = 20\).
Test 2
Input
20
3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4
Output
41
Bình luận