만드는 중입니다

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

제곱수를 곁들인 수 정렬하기

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

요약
곱이 완전제곱수인 두 수끼리만 자리를 바꿀 수 있을 때, 배열을 비내림차순으로 정렬할 수 있는지 판별합니다.
난이도

보통10점 중 6점

유형
정수론, 정렬, 해시맵
정답자
아직 제출이 없습니다

문제

양의 정수로 이루어진 길이가 NN인 수열 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 있다. 다음 행동을 원하는 만큼 반복할 수 있다.

1≤i,j≤N1 \leq i, j \leq N이고 i≠ji \neq j이면서 Ai×AjA_i \times A_j가 제곱수인 ii, jj를 고르고, AiA_i와 AjA_j의 값을 서로 바꾼다.

위 행동을 원하는 만큼 반복하여 수열을 비내림차순, 즉 A1≤A2≤⋯≤ANA_1 \le A_2 \le \cdots \le A_N이 되도록 정렬할 수 있는지 판단하시오.

입력

첫 번째 줄에 NN이 주어진다. (1≤N≤500 0001 \leq N \leq 500\,000)

두 번째 줄에 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤10181 \leq A_i \leq 10^{18})

출력

위 행동을 원하는 만큼 반복하여 수열을 비내림차순으로 정렬할 수 있으면 YES, 아니면 NO를 출력하시오.

예제2

  1. 예제 1

    입력
    4
    1 27 3 12
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    2
    2 1
    
    예상 출력
    NO