아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

변환

시간 제한1초메모리 제한128 MB

요약
길이 n인 두 이진 문자열이 주어질 때, 겹치지 않는 ab와 ba 조각을 서로 바꾸는 연산만으로 첫 문자열을 두 번째로 만들 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
문자열, 수학, 그리디, 구현
정답자
아직 제출이 없습니다

문제

알파벳 a와 b로만 이루어진 두 단어 uu와 vv가 주어진다. 목표는 다음 교환 연산만을 사용하여 단어 uu를 단어 vv로 바꾸는 것이다.

  • 첫 번째 단어에서 위치가 서로 겹치지 않는(서로소인) 두 부분 문자열 ab와 ba를 하나씩 고른 뒤, 두 조각을 맞바꾼다. 맞바꾸고 나면 ab였던 자리에는 ba가, ba였던 자리에는 ab가 온다.

이 연산을 유한 번 수행하여 uu를 vv로 만들 수 있는지 판정하여라.

입력

첫째 줄에 단어의 길이를 나타내는 정수 nn (2≤n≤1 000 0002 \le n \le 1\,000\,000)이 주어진다.

다음 두 줄에는 각각 a와 b로 이루어진 길이 nn의 문자열이 주어진다. 첫째 줄은 단어 uu를, 둘째 줄은 단어 vv를 나타낸다. 두 단어는 서로 다르다고 가정해도 좋다.

출력

위 교환 연산만으로 단어 uu를 단어 vv로 바꿀 수 있으면 TAK(가능)을, 그렇지 않으면 NIE(불가능)를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    6
    aabbaa
    baaaab
    
    예상 출력
    TAK
    
  2. 예제 2

    입력
    6
    aaabbb
    ababab
    
    예상 출력
    NIE