Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
SPLITSTR - Tách xâu |
(Đề đề xuất DHBB 2017 của THPT CHUYÊN HẠ LONG – QUẢNG NINH)
An có hai xâu s, t gồm các kí tự Latin in thường và một số nguyên k. An muốn chọn ra k xâu con rời nhau khác rỗng gồm các kí tự liên tiếp trong xâu s sao cho các xâu này cũng xuất hiện rời nhau trong xâu t với cùng một thứ tự như trong xâu s và tổng độ dài của k xâu này là lớn nhất có thể. Cụ thể hơn, An muốn tìm k xâu khác rỗng p1, p2, …, pk sao cho:
- Xâu s có thể được biểu diễn bởi chuỗi a1p1a2p2…akpka(k+1) ở đó a1, a2, …, a(k+1) là một xâu bất kì (có thể là xâu rỗng).
- Xâu t có thể được biểu diễn bởi chuỗi b1p1b2p2…bkpkb(k+1) ở đó b1, b2, …, b(k+1) là một xâu bất kì (có thể là xâu rỗng).
- |p1| + |p2| + ⋯ + |pk| đạt giá trị lớn nhất, ở đó |pi| là độ dài của xâu pi.
Bạn hãy giúp An tính toán tổng độ dài lớn nhất của k xâu thỏa mãn yêu cầu bài toán.
Dữ liệu vào:
- Dòng đầu tiên chứa số nguyên dương k.
- Dòng thứ hai chứa xâu s.
- Dòng thứ ba chứa xâu t.
Dữ liệu ra:
Một số nguyên duy nhất là giá trị lớn nhất của |p1| + |p2| + ⋯ + |pk|, nếu không tồn tại cách tách xâu thỏa mãn thì đưa ra -1.
Ví dụ:
Dữ liệu vào:
2
abc
ab
Dữ liệu ra:
2
Dữ liệu vào:
4
bbaaababb
abbbabbaaaba
Dữ liệu ra:
7
Dữ liệu vào:
3
abc
def
Dữ liệu ra:
-1
Giải thích: Trong test 2: 4 xâu tách được là bb, a, aa, ba.
- s = bb|a|aa|ba|b|b
- t = a|bb|babb|a|aa|ba
Giới hạn: 1 ≤ k ≤ 10; Các xâu s, t khác rỗng và độ dài không quá 1000.
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-07-03 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3 |
Nguồn bài: | Bài tập thực hành CSL |