만드는 중입니다

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

안정적인 수열

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

요약
N개의 자연수에서 인접한 두 수의 최대공약수가 1보다 큰 가장 긴 부분수열을 골라 그 위치를 출력합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 정수론, 누적 합
정답자
아직 제출이 없습니다

문제

자연수 수열이 안정적이라는 것은 이웃한 두 원소의 최대공약수가 항상 1보다 크다는 뜻이다.

예를 들어 수열 (5, 15, 9, 21, 14)는 안정적이다. gcd⁡(5,15)=5>1\gcd(5, 15) = 5 > 1, gcd⁡(15,9)=3>1\gcd(15, 9) = 3 > 1, gcd⁡(9,21)=3>1\gcd(9, 21) = 3 > 1, gcd⁡(21,14)=7>1\gcd(21, 14) = 7 > 1이 모두 성립한다. 반면 비슷한 7개 원소 수열 (5, 15, 7, 9, 21, 8, 14)는 안정적이지 않다. gcd⁡(15,7)=1\gcd(15, 7) = 1이기 때문이다.

자연수 수열이 주어질 때, 일부 원소를 지워서(아무것도 지우지 않아도 된다) 남은 수열이 안정적이 되게 하라. 가능한 한 많은 원소가 남아야 한다. 남긴 원소의 번호, 즉 입력 수열에서의 위치를 출력한다. 예를 들어 수열 (2, 5, 6, 3)에서는 첫 번째, 세 번째, 네 번째 원소를 남길 수 있다.

입력

첫 줄에 원소의 개수를 나타내는 자연수 NN (1≤N≤30 0001 \le N \le 30\,000)이 주어진다.

둘째(마지막) 줄에는 수열의 원소 NN개 AiA_i (1≤Ai≤1081 \le A_i \le 10^8)가 공백으로 구분되어 주어진다.

출력

첫 줄에 입력 수열에서 안정적인 수열이 되도록 남길 수 있는 원소의 최대 개수 RR을 출력한다. 둘째 줄에는 남길 원소의 번호를 오름차순으로 RR개 출력한다. 가능한 선택이 여러 가지라면 그중 아무거나 출력해도 된다.

입력 수열의 원소는 1부터 NN까지 번호가 매겨져 있다.

예제3

  1. 예제 1

    입력
    7
    5 15 7 9 21 8 14
    
    예상 출력
    5
    1 2 4 5 7
    
  2. 예제 2

    입력
    9
    6 3 3 10 5 5 14 7 7
    
    예상 출력
    5
    1 4 7 8 9
    
  3. 예제 3

    입력
    5
    1 1 1 1 1
    
    예상 출력
    1
    1