trang chủ / đề bài / pfminmax

Lợi nhuận tối đa một giao dịch

Đề bài

Mô tả

Cho dãy giá cổ phiếu p1,p2,…,pn trong n ngày liên tiếp. Bạn được phép thực hiện đúng một giao dịch: chọn ngày i để mua với giá pi, sau đó chọn ngày j để bán với giá pj, trong đó 1≤i≤j≤n. Lợi nhuận thu được là pj−pi.

Hãy tìm lợi nhuận lớn nhất có thể đạt được. Nếu mọi cách chọn đều cho lợi nhuận âm hoặc bằng 0, bạn có quyền không giao dịch và lợi nhuận khi đó là 0.

Có q trường hợp test độc lập (multitest).

Dữ liệu vào

  • Dòng đầu chứa số nguyên q — số trường hợp test.
  • Với mỗi trường hợp test:
    • Dòng đầu chứa số nguyên n.
    • Dòng tiếp theo chứa n số nguyên p1,p2,…,pn cách nhau bởi dấu cách.

Dữ liệu ra

In q dòng, mỗi dòng là đáp án của trường hợp test tương ứng.

Ràng buộc

  • 1≤q≤10
  • 1≤n≤2·105
  • 1≤pi≤109
  • Tổng n qua tất cả các trường hợp test không vượt quá 106.

Ví dụ

Input Output Giải thích
2
6
7 1 5 3 6 4
5
7 6 4 3 1
5
0
Test 1: mua ngày 2 (giá 1), bán ngày 5 (giá 6), lợi nhuận 6−1=5. Test 2: dãy giảm đều, mọi giao dịch đều lỗ nên không giao dịch, đáp án 0.
3
1
1000000000
4
1 2 3 4
5
3 3 3 3 3
0
3
0
Test 1: chỉ có 1 ngày, không thể có cặp i<j với lợi nhuận dương, đáp án 0 (cho phép i=j cũng cho 0). Test 2: mua ngày 1, bán ngày 4, lợi nhuận 4−1=3. Test 3: mọi giá bằng nhau, lợi nhuận tối đa là 0.

Ghi chú

Đáp án có thể vừa khít 32-bit (giá tối đa 109), nhưng nên dùng kiểu nguyên đủ rộng và cẩn thận khi sử dụng kiểu không dấu.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0