만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

상자 순환 이동과 카이사르 암호

면접 대비

시간 제한2초메모리 제한1024 MB

요약
문자열 s를 순환 이동하고 모든 글자를 같은 값만큼 뒤로 밀어 t와 같게 만들 수 있는지 판단합니다. 가능하면 k와 d를 출력합니다.
난이도

보통10점 중 6점

유형
문자열, 문자열 매칭, 수학
정답자
아직 제출이 없습니다

문제

샘 포터는 포스트아포칼립스 세계의 택배 기사입니다. 이 일이 달갑지 않아서, 일을 덜기 위해 주문을 꼼꼼히 살펴봅니다.

오늘 샘은 nn개의 상자로 이루어진 주문을 받았습니다. 각 상자에는 영문 소문자 하나로 된 품번이 있습니다. 샘은 상자를 어떤 순서로 쌓은 다음, 맨 위 상자부터 맨 아래 상자까지 품번 글자를 차례로 적어 문자열 ss를 만들었습니다. 이제 그는 ss를 이전 주문을 나타내는 문자열 tt와 같아지도록 바꿀 수 있는지 궁금해졌습니다. 이전 주문도 상자가 nn개였습니다.

샘은 ss에 다음 변환을 딱 한 번 적용할 수 있습니다.

  • 모든 품번에 카이사르 암호를 적용합니다. 즉 모든 글자를 고정된 간격 dd만큼 뒤로 순환 이동합니다. 예를 들어 d=4d = 4이면 e는 a가 되고, c는 y가 됩니다.
  • 샘은 더미 위에서 kk개 (0≤k<n0 \le k < n)의 상자를 집어 바닥에 내려놓고, 나머지 더미를 그 위에 얹습니다. 이것은 문자열 ss를 kk 위치만큼 순환 이동하는 것에 해당합니다.

샘이 ss를 tt로 바꾸는 변환이 있는지 알아내도록 도와주세요.

입력

첫 줄에 주문의 상자 개수 nn이 주어집니다 (1≤n≤200 0001 \le n \le 200\,000). 둘째 줄에는 이전 주문을 나타내는 길이 nn의 영문 소문자 문자열 tt가, 셋째 줄에는 현재 주문을 나타내는 길이 nn의 영문 소문자 문자열 ss가 주어집니다.

출력

ss를 tt로 바꾸는 변환이 존재하지 않으면 Impossible을 출력합니다. 그렇지 않으면 Success를 출력하고, 둘째 줄에 ss를 tt로 바꾸는 변환을 나타내는 두 정수 kk와 dd를 출력합니다 (0≤k<n0 \le k < n, −26<d<26-26 < d < 26). 가능한 답이 여러 개이면 그중 아무것이나 출력해도 됩니다.

예제4

  1. 예제 1

    입력
    3
    abc
    fde
    
    예상 출력
    Success
    1 3
    
  2. 예제 2

    입력
    3
    abc
    aba
    
    예상 출력
    Impossible
    
  3. 예제 3

    입력
    1
    z
    a
    
    예상 출력
    Success
    0 -25
    
  4. 예제 4

    입력
    5
    abcde
    cdeab
    
    예상 출력
    Success
    3 0