만드는 중입니다

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

스모킨 조의 결투

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

요약
순열이 주어질 때, 고정되지 않은 원소를 번갈아 교환해 마지막 교환을 하는 사람이 이기는 게임에서 먼저 두는 사람이 이기는지 판정합니다.
난이도

보통10점 중 6점

유형
게임 이론, 수학, 배열
정답자
아직 제출이 없습니다

문제

서부 시대 사람들은 컴퓨터 과학을 아주 진지하게 여긴다. 스모킨 조(Smokin' Joe)는 실력으로 널리 알려져 있어서, 온 나라의 무법자들이 옛 방식의 정렬 결투를 신청하러 그를 찾아온다. 서부의 무법자들이 결투하는 방식은 정수 배열을 마지막으로 정렬하는 사람이 되는 것이다. 어느 운명의 날, 스모킨 조의 숙적이자 악명 높은 무법자 The Outlaw가 마을에 와서 조에게 결투를 청했다. 결투 규칙은 다음과 같다. 아웃로가 탄창을 돌리면 길이가 n인 순열이 무작위로 떨어진다. 길이가 n인 순열은 1부터 n까지의 정수가 임의의 순서로 나열된 배열이다. 스모킨 조와 아웃로는 번갈아 가며 이 순열에서 두 원소를 서로 바꾼다. 순열이 오름차순으로 정렬될 때까지 계속하며, 마지막으로 교환한 사람이 이긴다. 어떤 원소가 최종 위치에 놓이면, 즉 값 k가 위치 k에 있으면, 그 원소는 게임이 끝날 때까지 움직일 수 없다. 그 밖의 경우에는 어떤 두 원소를 교환해도 제한이 없다. 두 플레이어는 항상 완벽하게 플레이한다. 즉 빨리 정렬하는 것이 아니라 이기는 것을 목표로 한다. 누가 이길지 예측할 수 있는가? 주어진 순열에서 게임의 승자를 예측하라. 스모킨 조가 첫 번째 수를 둔다.

입력

첫째 줄에 순열의 길이 n이 주어진다. (1≤n≤1061 \le n \le 10^6) 둘째 줄에는 서로 다른 정수 n개로 이루어진 순열이 주어진다. 입력은 1부터 n까지 정수의 순열이며, 이미 정렬되어 있지 않다고 보장된다.

출력

스모킨 조가 이기면 "Smokin Joe!"를, 아웃로가 이기면 "Oh No!"를 출력한다. Smokin의 아포스트로피는 기계마다 다른 ASCII 문자로 바뀌어 형식 오류를 일으킬 수 있으므로 출력에서 생략한다.

예제2

  1. 예제 1

    입력
    3
    1 3 2
    
    예상 출력
    Smokin Joe!
    
  2. 예제 2

    입력
    4
    4 3 2 1
    
    예상 출력
    Oh No!