int a[100005],b[100005];
int main()
{
int l,i,j,len;
while(~scanf("%d",&len))
{
memset(vis,0,sizeof(vis));
for(i=1;i<=len;i++)
{
scanf("%d",&b[i]);
}
for(i=1;i<=len;i++)
{
if(vis[i])
continue;
l=i;
vis[l]=1;
printf("(%d",l);
while(vis[b[l]]==0)
{
printf(" %d",b[l]);
vis[b[l]]=1;
l=b[l];
}
printf(")");
}
printf("\n");
}
return 0;
int main()
{
int l,i,j,len;
while(~scanf("%d",&len))
{
memset(vis,0,sizeof(vis));
for(i=1;i<=len;i++)
{
scanf("%d",&b[i]);
}
for(i=1;i<=len;i++)
{
if(vis[i])
continue;
l=i;
vis[l]=1;
printf("(%d",l);
while(vis[b[l]]==0)
{
printf(" %d",b[l]);
vis[b[l]]=1;
l=b[l];
}
printf(")");
}
printf("\n");
}
return 0;
}
input
output5 2 5 4 3 1 3 1 2 3
(1 2 5)(3 4) (1)(2)(3)