허술한 보안 프로그램
시간 제한1초메모리 제한1024 MB
0부터 N-1까지의 순열 비밀번호를 최대 두 번 틀릴 수 있을 때, bitwise OR 결과를 이용해 순열을 알아낸다.
문제
이 문제는 인터랙티브 문제입니다.
한 방랑 상인이 신촌 지역 대학교 프로그래밍 동아리 연합 ICPC Sinchon에 찾아왔다.
"특별한 보안 프로그램 bitwise OR wizard를 소개하지. 여기 사용 가이드를 읽어 보시게.
- 비밀번호로 부터 까지 서로 다른 개의 정수로 이루어진 자리의 순열을 이용한다.
- 틀린 비밀번호를 입력했을 경우 원래 비밀번호와 입력한 비밀번호의 bitwise OR 연산 결과를 보여준다.
- 최대 번까지만 틀릴 수 있다. 더 많이 틀릴 경우 프로그램은 모든 데이터를 삭제하고 고장난다.
번까지 틀릴 수 있지만 특수한 기능을 통해 비밀번호를 잊었을 때를 대비할 수 있고 비밀번호를 모르는 사람은 절대 암호를 풀 수 없지. 어떤가? 부가세 포함 단돈 원에 판매하겠네."
원으로 연세우유 생크림빵을 먹고 싶었던 ICPC Sinchon 회장은 잠깐 고민에 빠졌지만 결국 구매를 결정하기로 하였다. 이때, ICPC Sinchon의 알고리즘 고수가 나타나 이를 저지하고 나섰다.
"비밀번호를 모르는 사람도 뚫어낼 수 있는 허술한 프로그램을 판매하려 하다니, 절대 용서할 수 없어."
어떻게 한다는 것일까?
입력
첫째 줄에 순열의 길이를 나타내는 양의 정수 이 주어진다. ()
힌트
순열의 범위가 이 아닌 임에 유의하자.