페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3733

수열 그래프(순열그래프 연결성 판별) 1s 256MB

문제

1 ~ N까지 N개의 수가 임의의 순서로 나열되어 있다.

수열의 각 수를 A[1], A[2], ... A[N]이라고 할 때, 

i < j 이고 A[i] > A[j] (1 <= i < j <= N)인 경우

A[i]와 A[j]는 같은 그룹으로 한다.

 

예를 들어 3 1 2 5 6 4 수열이 주어졌다고 하자.

이때 3과 1, 3과 2는 위 조건을 만족하므로 같은 그룹이 된다.

따라서 1 2 3은 같은 그룹이다.

 

또한 5와 4, 6과 4가 위 조건을 만족하므로 같은 그룹이 된다.

따라서 4 5 6도 같은 그룹이다.

 

수열을 입력받아 위 조건에 맞게 그룹을 나누고

그 결과를 출력하는 프로그램을 작성하시오.

 


입력

첫 행에 수열의 길이 N ( 1 ~ 2,000,000)이 주어진다.

두 번째 행이 수열의 각 수가 공백을 구분하여 주어진다.​ 


출력

첫 행에 그룹 수를 출력한다.

두 번째 행부터 각 그룹의 정보를 행 단위로 출력한다.

그룹 정보의 첫 수는 그룹의 개수이다. 이어서 그룹의 수를 오름차순으로 출력한다.

여러개의 그룹을 출력하는 경우 그룹에 속한 수중에 가장 작은 수를 기준으로

오름차순으로 출력해야 한다.​ 


예제

6

3 1 2 5 6 4
2

3 1 2 3
3 4 5 6

출처

comkiwer
로그인해야 코드를 작성할 수 있어요.