Cod sursa(job #466295)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 26 iunie 2010 12:54:08
Problema Permutari2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 0.7 kb
#include<stdio.h>
#include<string>
FILE*f=fopen("permutari2.in","r");
FILE*g=fopen("permutari2.out","w");
int ok,p,x[310],n,u,nr,nr2;
char viz[310],viz2[310];
void perm(int k){
	int i,j;
	
	if(k==n+1){
		
		nr = 0;
		for ( i = 1 ; i <= n ; ++i ){
			ok = 0;
			viz2[x[i]] = 1 ;
			for ( j = 1 ; j <= i; ++j )
				if( viz2[j] == 0 )
					ok = 1;
			if( ok == 0 )
				++nr;
		}
		if(nr == p)
			++nr2;
		memset(viz2,0,sizeof(viz2));
		return;
	}
	for(i=1;i<=n;i++){
		if (viz[i]==0) {
			x[k]=i;
			viz[i] = 1;
			
			perm(k+1);
			
			viz[i] = 0;
		}
	}
}

int main () {
	fscanf(f,"%d %d",&n,&p);
	perm(1);
	
	fprintf(g,"%d\n",nr2);
	
	fclose(f);
	fclose(g);
	return 0;
}