Chọn ĐTQG TPHCM 2024 - Dãy bập bênh

Xem dạng PDF

Gửi bài giải

Điểm: 55,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Một dãy được gọi là dãy con của dãy ~Y~ nếu như nó được tạo bằng cách xóa đi một vài phần tử của ~Y~ (hoặc không xóa phần tử nào) và giữ nguyên thứ tự các phần tử còn lại.

Dãy số nguyên ~c_1, c_2, \dots, c_k~ được gọi là bập bênh nếu như ~k \ge 3~ và thỏa mãn một trong hai điều kiện sau: ~c_1 < c_2 > c_3 < c_4 > \dots~ hoặc ~c_1 > c_2 < c_3 > c_4 < \dots~, hay nói một cách tổng quát, ta luôn có ~(c_i - c_{i-1})(c_i - c_{i+1}) > 0~ với mọi ~1 < i < k~.

Yêu cầu: Cho hai dãy số nguyên ~a, b~ lần lượt có ~m, n~ phần tử, hãy viết chương trình cho biết độ dài của dãy con chung bập bênh dài nhất của hai dãy ~a, b~.

Input

Dòng đầu chứa hai số nguyên dương ~m, n~ cho biết độ dài của hai dãy con ~(1 \le m, n \le 10^4)~. Dòng thứ hai gồm ~m~ số nguyên dương ~a_1, a_2, \dots, a_m~. Dòng thứ ba gồm ~n~ số nguyên dương ~b_1, b_2, \dots, b_n~. Các số trong hai dãy đều không vượt quá ~10^4~.

Output

Một số nguyên duy nhất là độ dài lớn nhất của dãy con chung bập bênh, nếu không tồn tại dãy như thế thì in ra ~0~.

Scoring

Subtask Điểm Ràng buộc
1 ~30\%~ ~m, n \le 20~
2 ~30\%~ ~m, n \le 500~
3 ~40\%~ Không có ràng buộc gì thêm

Sample Input 1

7 6
1 3 5 4 6 2 3
1 2 5 4 3 6

Sample Output 1

4

Sample Input 2

6 6
1 2 3 4 5 6
6 5 4 3 2 1

Sample Output 2

0

Notes

  • Test 1: Dãy con chung bập bênh dài nhất ~(1, 5, 4, 6)~ có độ dài ~4~.
  • Test 2: Các dãy đã cho đều tăng hoặc giảm nên không tồn tại dãy con bập bênh nào.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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