Pagini recente » Cod sursa (job #3180442) | Cod sursa (job #2504823) | Cod sursa (job #318336) | Cod sursa (job #309382) | Cod sursa (job #466139)
Cod sursa(job #466139)
#include <stdio.h>
#include <vector>
using namespace std;
#define MOD 10007
int st[800];
int n, i, j, k;
int K, AS;
long int permutari;
void init ()
{
st[k] = 0;
}
int Am_Succesor ()
{
if (st[k] < n)
{
st[k] ++;
return 1;
}
return 0;
}
int E_Valid ()
{
for (i=1; i<k; ++i)
if (st[i] == st[k])
return 0;
return 1;
}
void back ()
{
k = 1;
init ();
while (k > 0)
{
do
{ }
while ( (AS = Am_Succesor()) && !E_Valid());
if (AS)
if (k == n)
{
/*for (i=1; i<=k; ++i)
printf ("%d", st[i]);*/
int gasit = 0;
for (i=1; i<=K; ++i)
if (st[i] > K)
{
gasit = 1;
break;
}
if (!gasit)
{
permutari ++;
/*for (i=1; i<=k; ++i)
printf ("%d", st[i]);*/
}
//printf ("\n");
}
else
{
k ++;
init ();
}
else
k --;
}
}
int main ()
{
FILE *f = fopen ("permutari2.in","r");
FILE *g = fopen ("permuatri2.out","w");
fscanf (f,"%d %d", &n, &K);
back();
//printf ("permutari = %ld", permutari % MOD);
fprintf (g,"%ld", permutari % MOD);
fclose(g);
fclose(f);
return 0;
}