Cod sursa(job #25596)

Utilizator bughyBondane Bogdan bughy Data 4 martie 2007 13:05:04
Problema Kperm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <stdio.h>

#define input "kperm.in"
#define output "kperm.out"
#define dimmax 5001

long n,p,aux[dimmax],sir[dimmax],rezultat;

void back(long k);

int main()
{
        freopen(input,"r",stdin);
        freopen(output,"w",stdout);
        long i;
        scanf("%ld%ld",&n,&p);
        if(n!=p)
           back(1);
        else
        {
           rezultat=1; 
           for(i=2;i<=n;i++)
               rezultat=(rezultat*i)%666013;
        }        

        printf("%ld",rezultat%666013);
        
        return 0;
}    

void back(long k)
{
    long i,q,w,suma,ind;
    for(i=1;i<=n;++i)
       if(aux[i]==0)
       {
          aux[i]=1;
          sir[k]=i;
          if(k==n)
          {
             ind=1; 
             for(q=1;q<=n-p+1;++q)
             {
                suma=0; 
                for(w=q;w<=q+p-1;++w) 
                   suma+=sir[w];
                if(suma%p)
                {
                   ind=0;
                   break;
                }
             }
             if(ind)
               ++rezultat;
          }            
          else         
             back(k+1);
          aux[i]=0;
       }  
}