Dãy con đẹp

View as PDF

Submit solution

Points: 210.00 (partial)
Time limit: 2.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Dãy con của một dãy cho trước thu được bằng cách giữ nguyên thứ tự và xóa một số phần từ của dãy đó. Cho hai dãy số nguyên a1, a2,…,anb1, b2,…,bm. Dãy c1, c2,…,ck được gọi là đẹp nếu nó thỏa mãn các điều kiện sau:

  • k lẻ.
  • c(2j1) < c(2j)c(2j+1) < c(2j) với ∀j: 1 < 2*j < k.
  • c1, c2,…,ck là dãy con của dãy a1, a2,…,an.
  • c1, c2,…,ck là dãy con của dãy b1, b2,…,bm.

Yêu cầu: Tìm độ dài lớn nhất của dãy con đẹp và số lượng dãy con đẹp khác nhau có độ dài lớn nhất.

Dữ liệu vào:

  • Dòng đầu c hứa số nguyên dương n (1 ≤ n ≤ 10000).
  • Dòng thứ hai ghi n số nguyên a1, a2,…,an (1 ≤ ai ≤ 20000,i = 1..n).
  • Dòng thứ ba chứa số nguyên dương m (1 ≤ m ≤ 10000).
  • Dòng cuối ghi m số nguyên b1, b2,…,bm (1 ≤ bi ≤ 20000,i = 1..m).

Dữ liệu ra:

  • Ghi một dòng gồm hai số là độ dài lớn nhất của dãy con đẹp và số lượng dãy con đẹp khác nhau có độ dài lớn nhất mod (109 + 9). Trong trường hợp không có câu trả lời, dữ liệu in ra hai số 0 0.
Ví dụ:
INPUT
Copy
7
1 5 3 4 2 5 2
5
1 3 5 4 2
OUTPUT
Copy
3  6

Các ràng buộc:

  • Thời gian: 2s/test
  • 25% tổng số test có 1 ≤ n ≤ 20,1 ≤ m ≤ 10.
  • 25% tổng số test tiếp theo có 1 ≤ n ≤ 1000,1 ≤ m ≤ 20.
  • 25% tổng số test tiếp theo có 1 ≤ n,m ≤ 500.
  • 25% tổng số test cuối có 1 ≤ n,m ≤ 104.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.