MÔ HÌNH GIÁ

A graph with lines and numbers Description automatically generatedMô hình giá là một trong những công cụ yêu thích của những nhà đầu tư (NĐT). Bằng việc theo dõi giá giao dịch của một mặt hàng trong một khoảng thời gian, NĐT có thể tìm thấy một mô hình giá được lặp lại trong những thời điểm khác nhau để từ đó có những quyết định đầu tư hợp lý. Một mô hình giá \(H\) có chiều dài \(n\) được cho bởi hoán vị \((h_{1},h_{2},\ldots,h_{n})\) của tập các số \(\{ 1,2,\ldots,n\}\). Các giao dịch này được đánh số thứ tự từ 1 đến \(n\), hoán vị trên cho biết trong \(n\) giao dịch liên tiếp thì các mức so sánh giá giao dịch lần lượt là \(h_{1},h_{2},\ldots,h_{n}\). Mức giao dịch thấp nhất là 1, tiếp đến là 2,…và mức giá giao dịch cao nhất là \(n\). Khi xét \(n\) giao dịch \(a\) liên tiếp bất kỳ, ta nói mô hình giá \(H\) được lặp lại nếu so sánh giá giao dịch tại phiên thứ \(i\)\(j\)\(a_{i} < a_{j}\) khi và chỉ khi (tương đương với) \(h_{i} < h_{j}\) với mọi \(i,j\) trong khoảng \(\lbrack 1...n\rbrack\)

Yêu cầu: Cho trước \(m\) phiên giao dịch, các giao dịch này được đánh số từ 1 đến \(m\) và một mô hình giá có chiều dài \(n\). Hãy viết một chươn trình cho biết mô hình giá trên được lặp lại bao nhiêu lần và vị trí những lần đó trong \(m\) giao dịch.

Dữ liệu vào:

+ Dòng đầu là hai số nguyên \(n\)\(m\) cho biết chiều dài của mô hình giá và số phiên giao dịch đang xét.

+ Dòng thứ hai chứa \(n\) số nguyên \(h_{i}\) là một hoán vị của các số \(\{ 1,2,3\ldots,n\}\), trong đó \(1 \leq h_{i} \leq n\)\(h_{i}
eq h_{j}\)
với mọi \(i,j\).

+ Dòng thứ ba chứa \(m\) số nguyên \(g_{i}\left( 1 \leq g_{i} \leq 10^{9} \right)\) lần lượt là giá giao dịch trong \(m\) phiên. Để thuận lợi trong thống kê, bán có thể giả sử các số trong \(g_{i}\) luôn khác nhau.

Kết quả:

+ Dòng đầu là một số nguyên \(d\) cho biết số lần mô hình giá được lặp lại.

+ Dòng thứ hai chứa \(d\) số nguyên là chỉ số các phiên giao dịch đầu tiên khi mô hình giá lặp lại, các chỉ số này được sắp xếp tăng dần. Nếu \(d = 0\) thì dòng thứ hai không xuất gì.

Ví dụ:

Input Output
6 12
2 5 3 4 1 6
10 45 25 30 5 47 31 35 4 50 33 20
2
1 5

Ràng buộc:

+ Có 20% số test tương ứng với 20% số điểm của bài có \(1 \leq n \leq 100\)\(1 < m \leq 1000\);

+ Có 30% số test khác tương ứng với 30% số điểm của bài có \(1 < n \leq 5000\)\(1 < m < 20000\);

+ Có 50% số test còn lại tương ứng 50% số điểm của bài có \(1 < n,m \leq 1000000\).

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (15/22)
  2. trithien (7/11)
  3. sythai (6/12)
Trong 7 ngày
  1. nguyenanhvu (40/63)
  2. khieuquan (35/55)
  3. ngokhang (25/51)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38900

Lưu Hải Phong - 2020
[email protected]