Zamjena

면접 대비

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

요약
숫자와 변수로 된 두 배열에서 같은 변수에 같은 값을 대입하여 모든 위치의 값을 일치시킬 수 있는지 판단합니다. 위치별 제약을 검사해 모순이 있으면 NE를 출력합니다.
난이도

보통10점 중 4점

유형
해시맵, 구현, 배열
정답자
아직 제출이 없습니다

문제

Vlatko는 정수 배열을 가지고 노는 것을 좋아한다. 그는 종이에 N개의 원소로 이루어진 두 배열을 썼는데, 각 원소는 양의 정수이거나 영어 알파벳 소문자로 이루어진 문자열로, 변수를 나타낸다. 변수는 임의의 정수로 대체할 수 있다. 두 배열에 같은 변수가 있을 수도 있고, 한 배열 안에 같은 변수가 여러 번 나타날 수도 있다. 그런 경우, 그 변수의 모든 출현은 두 배열에서 같은 정수로 대체되어야 한다.

Vlatko는 모든 변수를 적당한 정수 값으로 대체하여 두 배열이 같아지도록 할 수 있는지 궁금해한다. 두 배열이 같다는 것은, 배열의 같은 위치에 있는 수가 같다는 뜻이다.

입력

첫째 줄에는 양의 정수 N (1 ≤ N ≤ 50 000)이 주어지며, 이는 각 배열의 원소 수이다.

둘째 줄에는 첫 번째 배열의 N개 원소가 주어진다.

셋째 줄에는 두 번째 배열의 N개 원소가 주어진다.

두 배열의 각 원소는 다음 중 하나이다.

  • 1 000보다 작은 양의 정수
  • 변수를 나타내는 영어 알파벳 소문자 문자열 (길이 10 이하)

출력

모든 변수를 적당한 정수 값으로 대체하여 두 배열이 같아지도록 할 수 있으면 “DA” (크로아티아어로 예, 따옴표 없이)를 출력한다. 그렇지 않으면 “NE” (크로아티아어로 아니오)를 출력한다.

예제3

  1. 예제 1

    입력
    3
    3 1 2
    3 1 x
    
    예상 출력
    DA
    
  2. 예제 2

    입력
    4
    4 5 iks ipsilon
    1 iks 3 iks
    
    예상 출력
    NE
    
  3. 예제 3

    입력
    5
    x 3 x y 3
    x y 2 z 3
    
    예상 출력
    DA