Trước tiên tạo mảng x[k]
đánh dấu các phần tử nào cần xuất hiện và k đc có trong mảng sau cùng tìm được (tạo từ 2 mảng A
, B
).
Phần còn lại là duyệt trên mảng C
, đếm các phần tử cho đến khi đủ số lượng các phần tử cần xuất hiện trong A
.
https://vn.spoj.com/problems/SEARCH
https://oj.vnoi.info/problem/SEARCH
Cho ba dãy số nguyên dương A=(A1,..,AM)
, B=(B1,...,BN)
và C=(C1,...,CP)
Hãy tìm một dãy con dài nhất gồm các phần tử liên tiếp của dãy C
thỏa mãn hai điều kiện:
A
đều xuất hiện trong dãy con được chọnB
xuất hiện trong dãy con được chọnM, N, P
M
số nguyên dương A1,...,AM
N
số nguyên dương B1,...,BN
P
số nguyên dương P1,...,PN
Các số trong file dữ liệu đều là số nguyên dương không lớn hơn 10^5
, các số trên cùng một dòng được ghi cách nhau bởi dấu cách. Dữ liệu vào đảm bảo tìm được dãy con khác rỗng gồm các phần tử liên tiếp thỏa mãn yêu cầu đề bài. Trong 50% số test, m,n,p <= 1000
Một số nguyên duy nhất là độ dài của dãy con tìm được
Input
3 2 11
1 2 3
5 9
1 2 9 2 2 1 4 5 3 1 2
Output
3
Trước tiên tạo mảng x[k]
đánh dấu các phần tử nào cần xuất hiện và k đc có trong mảng sau cùng tìm được (tạo từ 2 mảng A
, B
).
Phần còn lại là duyệt trên mảng C
, đếm các phần tử cho đến khi đủ số lượng các phần tử cần xuất hiện trong A
.