Problem ID:
sortingorder
Points:
2 (partial)
Time limit:
1.0s
Memory limit:
512M
Input:
stdin
Output:
stdout
Author:
Problem types
Hôm nay Tèo được phân công sắp xếp hàng hoá cho một cửa hàng nọ. Công việc của Tèo là sử dụng máy móc để đưa ~n~ mặt hàng khác nhau vào một dãy các vị trí ~i~ đúng với mức giá ~a_i~ quy định trước.Thật không may, khi máy móc đang làm việc thì bất ngờ xảy ra lỗi khiến cho một đoạn từ vị trí ~l~ đến vị trí ~r~ bị sắp xếp không giảm, còn các đoạn ~[1,l-1]~ và đoạn ~[r+1,n]~ đã được sắp xếp đúng.
Để khắc phục hậu quả nhanh chóng Tèo cần tìm vị trí ~l~ và ~r~ đó để máy có thể sắp xếp lại. Hãy viết chương trình giúp Tèo tìm vị trí ~l~ và ~r~ đó nhé!
Dữ liệu vào:
- Dòng đầu tiên chứa số nguyên dương ~n~ ~(1 \le n \le 2 \times 10^5)~ ứng với số sản phẩm của cửa hàng.
- Dòng thứ hai chứa dãy các số nguyên dương ~a_1, a_2, ..., a_n~ ~(1 \le a_i \le n)~ ứng với mức giá quy định trước mà sản phẩm cần xếp vào.
- Dòng thứ hai chứa dãy các số nguyên dương ~b_1, b_2, ..., b_n~ ~(1 \le b_i \le n)~ứng với mức giá của hàng hoá sau khi sắp xếp (biết dãy ~b~ là hoán vị của dãy ~a~).
Dữ liệu ra
Hai số nguyên dương ~l~ và ~r~ ứng với đoạn đã bị lỗi khi sắp xếp.
Lưu ý đề bài
- Luôn tồn tại cách xác định ~l~ và ~r~ thoả mãn yêu cầu đề bài.
- Dãy số ~b~ luôn khác dãy số ~a~.
- Nếu tồn tại nhiều đoạn ~[l,r]~ thoả mãn yêu cầu đề bài, in ra cặp số ~l~ và ~r~ sao cho khoảng cách giữa ~l~ và ~r~ là lớn nhất. Nếu vẫn tồn tại nhiều đoạn ~[l,r]~ có cùng khoảng cách lớn nhất, in ra đoạn cặp số ~l~ và ~r~ sao cho ~l~ nhỏ nhất.
Giới hạn
- Subtask ~1~ ~(20\%)~: ~n \le 10^2~
- Subtask ~2~ ~(20\%)~: ~n \le 10^3~
- Subtask ~3~ ~(30\%)~: ~n \le 10^4~
- Subtask ~4~ ~(30\%)~: Không có ràng buộc gì thêm.
Ví dụ
Input
5
4 2 3 2 1
4 2 2 3 1
Output
2 4
Giải thích
Dãy ban đầu là ~\{4, 2, 3, 2, 1\}~ sau khi sắp xếp không giảm đoạn ~[2,4]~ thì được dãy bị lỗi là ~\{4, 2, 2, 3, 1\}~.
Comments