PTIT123C - Chứng khoán

Link Sub: http://www.spoj.com/PTIT/problems/PTIT123C/
Người Gửi: Sai

  • Problem:

Cho trước lịch sử giao dịch của một mã chứng khoán trong n ngày. Hãy xác định k1 ngày có giá thấp nhất và k2 ngày có giá cao nhất.
Input
Mỗi bộ test gồm 2 dòng
  • Dòng 1 ghi 3 số n, k1, k2 với n<=106. k1+k2<=n và k1,k2<=100.
  • Dòng tiếp theo ghi n số nguyên theo thứ tự là giá của mã chứng khoán trong n ngày liên tiếp.
  • Bộ test cuối cùng chứa 3 số 0
Output
Với mỗi bộ test, ghi ra màn hình 3 dòng gồm:
  • Dòng 1 ghi số thứ tự bộ test
  • Dòng 2 ghi k1 ngày có giá thấp nhất theo thứ tự các ngày tăng dần. Nếu có nhiều danh sách cho kết quả giống nhau thì chọn danh sách thấp nhất theo thứ tự từ điển.
  • Dòng 3 ghi k2 ngày có giá cao nhất theo thứ tự các ngày giảm dần. Nếu có nhiều danh sách cho kết quả giống nhau thì chọn danh sách cao nhất theo thứ tự từ điển.
Example:
Input
10 3 2
1 2 3 4 5 6 7 8 9 10
10 3 2
10 9 8 7 6 5 4 3 2 1
0 0 0
Output:
Case 1
1 2 3
10 9
Case 2
8 9 10
2 1

  • Solution:

Bài này chủ yếu là sắp xếp: - Sắp xếp toàn bộ cổ phiếu tăng đần, nếu cổ phiếu bằng nhau thì sắp xếp tăng dần theo ngày - Sắp xếp k phần tử đầu có ngày tăng dần. - Sắp xếp k phần tử sau có ngày giảm dần. -> in ra kết quả thôi. (dưới đây mình sử dụng hàm sort trong STL, hàm sort ở đây được sử dụng là dạng heap sort)

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »