Pagini recente » Cod sursa (job #914180) | Cod sursa (job #2929692) | Cod sursa (job #2091920) | Cod sursa (job #2172982) | Cod sursa (job #25408)
Cod sursa(job #25408)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "kperm.in"
#define out "kperm.out"
#define dim 5001
int x[dim];
int v, n;
int contor=0, sum;
void ReadData();
void Back(int);
int Ok(int);
void Write();
int main()
{
ReadData();
Write();
return 0;
}
void ReadData()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d%d",&n,&v);
x[0] = 0;
}
void Back(int k)
{
for ( int i = 1; i <= n; i++ )
{
x[k] = i;
if ( Ok(k) )
{
if ( k == n )
{
contor+=1;
if ( contor == 666013 ) contor=0;
}
else if ( k < n ) Back(k+1);
}
}
}
int Ok(int k)
{
sum=0;
for ( int i = 1; i < k; i++ )
if ( x[i] == x[k] ) return 0;
if ( k <= v )
{
sum += x[k];
}
if ( k == v )
{
if ( sum % v != 0 ) return 0;
}
if ( k > v )
{
sum += x[k];
sum -= x[k-v];
if ( sum % v != 0 ) return 0;
}
return 1;
}
void Write()
{
Back(1);
if ( contor == 666013 ) contor=0;
printf("%d", contor);
}