BEGINEND - Bắt đầu của kết thúc
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: Ngapt

John Connor và Marcus Rice đã thâm nhập được vào Khu liên hợp lắp ráp Kẻ Hủy diệt T-800. Họ chuẩn bị cho nổ tung tổ hợp này và đặt dấu chấm hết cho chuỗi các trận chiến vì tương lai của loài người. Bỗng nhiễn hai người phát hiện thấy một điều bất thường: các hòm nhiên nguyên liệu chế tạo T-800 mà họ định cho nổ tung đã bị sắp đặt lại. Trên mỗi hòm trong số n hòm ở đây đều có sơn một số nguyên. Chính vì vậy hai người mới nhận ra ngay sự thay đổi trình tự. Để đề phòng mọi bất trắc có thể xẩy ra Connor và Rice quyết định khôi phục lại trình tự cũ của dãy hòm rồi mới tiến hành thiêu hủy.

Việc bố trí lại các hòm dĩ nhiên là do các T-800 thực hiện. Connor biết rõ cách làm của các rô bốt này:

  • Đảo ngược vị trí của dãy k hòm bắt đầu từ hòm thứ nhất tính từ trái,
  • Đảo ngược vị trí của dãy k hòm bắt đầu từ hòm thứ hai tính từ trái,
  • . . . . . .
  • Đảo ngược vị trí của dãy k hòm kết thúc bởi hòm cuối cùng ở bên phải.

Ví dụ, với k = 3 và trình tự ban đầu các hòm là [1, 2, 3, 1, 2], sau khi sắp xếp lại theo kiểu trên trình tự các hòm sẽ là [3, 1, 2 , 2, 1].

Chỉ có điều, cả hai đều không biết được giá trị k được sử dụng ở đây là bao nhiêu.

Cho biết trình tự ban đầu và trình tự hiện tại của dãy hòm. Hãy xác định có bao nhiêu giá trị k khác nhau có thể đã được áp dụng khi bố trí lại và chỉ rõ các giá trị đó.

Dữ liệu: Vào từ file văn bản BEGINEND.INP:

  • Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 105),
  • Dòng thứ 2 và dòng thứ 3: mỗi dòng chứa n số nguyên xác định trình tự ban đầu và trình tự hiện tại của dãy hòm, mỗi số có giá trị trong phạm vi [1..105].

Kết quả: Đưa ra file văn bản BEGINEND.OUT:

  • Dòng đầu tiên chứa số nguyên m – số giá trị k khác nhau có thể được sử dụng,
  • Mỗi dòng trong m dòng sau chứa một số nguyên dương – các giá trị có thể của k.

Ví dụ

Inp:

5

1 2 3 1 2

3 1 2 2 1

Out:

1

3

Hint: Hash

Back to Top