Pagini recente » Cod sursa (job #1936567) | Cod sursa (job #736710) | Cod sursa (job #47019) | Cod sursa (job #792663) | Cod sursa (job #657867)
Cod sursa(job #657867)
#include<fstream>
using namespace std;
long i,j,st[5000],s,n,k,nr=0,suma[5000];
ifstream f("kperm.in");
ofstream g("kperm.out");
int valid(int p)
{int i;
if ((p>=k)&&(suma[p]-suma[p-k])%k!=0) return 0;
for(i=1;i<p;i++)
if (st[i]==st[p]) return 0;
return 1;}
void back(int p)
{int pval;
for(pval=1;pval<=n;pval++)
{st[p]=pval;suma[p]=suma[p-1]+pval;
if(valid(p))
{if (p==n)
nr=(nr+1)%666013;
else
back(p+1);}
}
}
int main()
{
f>>n>>k;
f.close();
if(k%2==0)
g<<"0\n";
else
{back(1);
g<<nr%666013<<"\n";
}
g.close();
return 0;
}