Dịch Chuyển Dãy
Trạng thái
Đề bài
Cho hai dãy số \(a_1, a_2, \ldots, a_N\) và \(b_1, b_2, \ldots, b_N\) là hai hoán vị của dãy \(1, 2, \ldots, N\).
Trong một lần thực hiện hành động, bạn có thể biến đổi dãy \(a\) bằng cách đưa phần tử đầu tiên ra cuối cùng. Tức là từ dãy \(a_1, a_2, \ldots, a_N\), bạn thu được dãy \(a_2, \ldots, a_N, a_1\).
Yêu cầu: Bạn được phép thực hiện bất kỳ số lần hành động sao cho sau cùng, số lượng chỉ số \(i\) thỏa mãn \(a_i = b_i\) là lớn nhất.
Dữ liệu vào
- Dòng đầu tiên gồm số nguyên dương \(N\) (\(1 \leq N \leq 2 \cdot 10^5\)).
- Dòng thứ hai gồm \(N\) số nguyên dương \(a_1, a_2, \ldots, a_N\).
- Dòng thứ ba gồm \(N\) số nguyên dương \(b_1, b_2, \ldots, b_N\).
Dữ liệu ra
- In ra số lượng chỉ số \(i\) lớn nhất thỏa mãn \(a_i = b_i\) sau khi thực hiện các hành động dịch chuyển.
Giới hạn
- Subtask 1 [40% số test]: \(N \leq 10^3\)
- Subtask 2 [60% số test]: \(N \leq 2 \cdot 10^5\)
Sample Input 1
5
1 2 3 4 5
2 3 4 5 1
Sample Output 1
5
Sample Input 2
4
1 3 2 4
4 2 3 1
Sample Output 2
2
Giải thích
- Ở ví dụ 1, nếu dịch chuyển dãy \(a\) một lần, ta được \(2 3 4 5 1\) giống với dãy \(b\) tại 5 vị trí.
- Ở ví dụ 2, nếu dịch chuyển dãy \(a\) hai lần, ta được \(2 4 1 3\), không trùng nhiều vị trí hơn. Cách tốt nhất là dịch chuyển một lần để có \(3 2 4 1\), trùng tại 2 vị trí với \(b\).
Thông tin
Thông tin bài tập
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
250 M
I/O
Không xác định
Tác giả
Loại đề bài
Chưa xác định
Ngôn ngữ cho phép