Cod sursa(job #1071951)

Utilizator roxannemafteiuMafteiu-Scai Roxana roxannemafteiu Data 3 ianuarie 2014 18:51:16
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>

#define mod 666013
#define ll long long

int n,m,r,c;
ll sol;

ll fact(int x)
{
     ll rez=1;
     int i;

     for (i=1;i<=x;i++) rez=(rez*i)%mod;

     return rez;
}

ll power(int a,int x)
{
     ll rez=1;
     int i;

     for (i=1;i<=x;i++) rez=(rez*a)%mod;

     return rez;
}

int main()
{
    freopen("kperm.in","r",stdin);
    freopen("kperm.out","w",stdout);

    scanf("%d %d",&n,&m);

    if (n%m==0)
    {
         c=n/m-1;
         r=m;
    }
    else {
             c=n/m;
             r=n%m;
         }

    if (m%2==0) printf("0\n");
    else {
              sol=(fact(r)*fact(m-r))%mod;
              sol=(sol*power(fact(c+1),r))%mod;
              sol=(sol*power(fact(c),m-r))%mod;
              printf("%lld\n",sol);
         }

    return 0;
}