Cod sursa(job #657796)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 7 ianuarie 2012 14:01:30
Problema Kperm Scor 20
Compilator cpp Status done
Runda winners8 Marime 0.68 kb
#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();
    suma[0]=0;
    if(k%2==0)  
         g<<"0\n";
    else
     {back(1);
       g<<nr%666013<<"\n";
      }
    g.close();
    return 0;
}