Cod sursa(job #29077)

Utilizator s120489Martonos Stefan s120489 Data 8 martie 2007 16:40:47
Problema Kperm Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream.h>
long i,j,st[5000],s,n,k,nr=0,suma[5000];
ofstream g("kperm.out");
/*void afisare()
{for(i=1;i<=n;i++)
  g<<st[i]; g<<endl;
} */
int valid(int p)
{

if ((p>=k)&&(suma[p]-suma[p-k])%k!=0) return 0;
  for(int i=1;i<p;i++)
    if (st[i]==st[p]) return 0;
    return 1;

    }
void back(int p)
{int pval;


for(pval=n;pval>=1;pval--)
   {st[p]=pval;suma[p]=suma[p-1]+pval;

   if(valid(p))
      if (p==n)
       {nr=(nr+1)%666013;
       //	   afisare();
       }
	 else
     back(p+1);
   }
}
int main()
{
ifstream f("kperm.in");
f>>n>>k;
f.close();
suma[0]=0;
if(k%2==0||k==n||k==n-1)  g<<"0\n";
else
{back(1);
//ofstream g("kperm.out");
g<<nr%666013<<"\n";
}
g.close();return 0;
}