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 ~a_1~, ~a_2~,…,~a_n~ và ~b_1~, ~b_2~,…,~b_m~. Dãy ~c_1~, ~c_2~,…,~c_k~ được gọi là đẹp nếu nó thỏa mãn các điều kiện sau:

  • k lẻ.
  • ~c_{(2*j-1)}~ < ~c_{(2*j)}~ và ~c_{(2*j+1)}~ < ~c_{(2*j)}~ với ∀j: 1 < 2*j < k.
  • ~c_1~, ~c_2~,…,~c_k~ là dãy con của dãy ~a_1~, ~a_2~,…,~a_n~.
  • ~c_1~, ~c_2~,…,~c_k~ là dãy con của dãy ~b_1~, ~b_2~,…,~b_m~.

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 ~a_1~, ~a_2~,…,~a_n~ (1 ≤ ~a_i~ ≤ 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 ~b_1~, ~b_2~,…,~b_m~ (1 ≤ ~b_i~ ≤ 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 (~10^9~ + 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
7
1 5 3 4 2 5 2
5
1 3 5 4 2
OUTPUT
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 ≤ ~10^4~.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.