Cod sursa(job #265293)

Utilizator alexandru92alexandru alexandru92 Data 23 februarie 2009 19:15:08
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
#include<conio.h>
int n,v[10001],p[10001];
long perm(long);
// brute force :P
int main()
  {int ok=1;
   freopen("perm2.in","rt",stdin);
   freopen("perm2.out","wt",stdout);
   scanf("%d",&n);
   for(int i=1;i<=n;i++)
      {scanf("%d",&v[i]);
       p[i]=v[i];
       if(v[i]!=i) ok=0;
      }
   if(ok) {printf("1");return 0;}
   printf("%ld\n",perm(2));
   return 0;
  }
long perm(long k)
   {int ok,i;
    do{ok=1;
       for(i=1;i<=n;i++)
       {
	p[i]=v[p[i]];
	if(p[i]!=i) ok=0;
	} k++;
      }while(!ok);

    return k-1;
   }