hi, here's the code
#include<stdio.h>
int main(void)
{
int n,p,j=1,count=0,i,arr1[1010],arr2[2010];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&arr1[i]);
}
for(i=1;i<=n;i++)
{
if(arr1[i]!=0)
{
count++;
p=i;
arr2[j++]=i;
do
{
arr2[j++]=arr1[arr2[j-1]];
arr1[arr2[j-2]]=0;
}while(p!=arr2[j-1]);
}
}
printf("%d\n",count);
for(i=1;i<j;i++)
{
printf("%d",arr2[i++]);
p=arr2[i-1];
do
{
printf(" %d",arr2[i++]);
}while(p!=arr2[i-1]);
printf("\n");
i--;
}
return 0;
}