먼저 N≤3인 경우를 확인하자.
- N=1이면 정의에 따라 A=0<S=1이다.
- N=2이면 유일한 인접 쌍의 OR 값은 1OR2=3=S이다.
- N=3이면 서로 다른 두 수의 OR 값이 항상 3이므로 A=6=S이다.
따라서 이 세 경우에는 조건을 만족하는 순열이 없다.
이제 N≥4라고 하자. 순열
P=(1,2,3,…,N)
을 출력하면 된다.
모든 i에 대해 iOR(i+1)≥i+1이다. 따라서
A≥i=1∑N−1(i+1)=S
이다. 여기서 첫 번째 항은 1OR2=3이므로 하한보다 1 크고, 네 번째 수까지 존재하므로 3OR4=7은 하한에 사용한 보다 크다. 따라서
A≥(S−1)+1+3>S
이 성립한다.
시간 복잡도는 출력 크기와 같은 O(N)이고, 추가 공간 복잡도는 O(1)이다.
Solution written by GPT6
+ N≥4인 경우 어떤 순열을 출력하든 항상 문제의 조건을 만족한다.