길이가 N인 두 수열이 주어질 때, 한쪽을 회전해 다른 쪽을 만들 수 있는지 판별한다.
보통5문자열 매칭배열투 포인터문자열면접 대비아직 제출이 없습니다시간 제한1초메모리 제한64 MB앨리스는 밥에게 비밀 암호를 보내야 한다. 암호는 공백으로 구분된 정수 N개다. 앨리스는 전령 이브에게 암호를 맡기기로 했다. 이브가 암호를 훔치지 못하도록, 앨리스는 직접 고안한 방법으로 암호를 감춘다. 정수들을 고리 모양으로 이어 놓고 아무 위치에서나 시작해 한 바퀴 적는 것이다.
예를 들어 암호가 37 20 71 33 97이면 앨리스는 20 71 33 97 37이라고 적는다. 시작 위치가 다섯 번째 정수라는 사실은 밥에게 미리 알려 두었으므로, 밥은 그 자리부터 읽어 원래 암호를 되살린다. 앨리스는 시작 위치를 바꿔서 적을 수 있다. 같은 암호를 71 33 97 37 20이라고 적으면 시작 위치는 네 번째 정수다.
노련한 해커인 이브는 앨리스의 방법을 알아냈다. 다만 시작 위치는 모른다. 이브는 앨리스의 전령을 두 번 맡았기 때문에 암호문을 두 개 가지고 있다. 이브는 앨리스가 같은 암호를 두 번 보냈을 가능성이 있는지 알고 싶다.
암호문 두 개가 같은 암호에서 나왔을 수 있는지 판정하라.
첫째 줄에 암호를 이루는 정수의 개수 N이 주어진다. (1≤N≤100000)
둘째 줄에 첫 번째 암호문을 이루는 정수 a1,a2,…,aN이 공백으로 구분되어 주어진다. (1≤ai≤1500000000)
셋째 줄에 두 번째 암호문을 이루는 정수 b1,b2,…,bN이 공백으로 구분되어 주어진다. (1≤bi≤1500000000)
두 암호문이 같은 암호에서 나왔을 수 있으면 첫째 줄에 YES를, 그렇지 않으면 NO를 출력한다.