Cod sursa(job #1753309)

Utilizator ionut98Bejenariu Ionut Daniel ionut98 Data 6 septembrie 2016 12:40:06
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream>
#define mod 666013
using namespace std;
ifstream f("kperm.in");
ofstream g("kperm.out");
int n,m,r,c;
long long sol;
long long fact(int x)
{
    long long rez=1;
    int i;
    for (i=1;i<=x;i++)
      rez=(rez*i)%mod;
    return rez;
}
long long rid_la_putere(int a,int x)
{
    long long rez=1;
    int i;
    for(i=1;i<=x;i++)
      rez=(rez*a)%mod;
    return rez;
}
int main()
{
    f>>n>>m;
    if(n%m==0)
    {
        c=n/m-1;
        r=m;
    }
    else
    {
        c=n/m;
        r=n%m;
    }
    if(m%2==0)
      g<<0;
    else
    {
        sol=fact(r)*fact(m-r);
        sol%=mod;
        sol*=rid_la_putere(fact(c+1),r);
        sol%=mod;
        sol*=rid_la_putere(fact(c),m-r);
        sol%=mod;
        g<<sol;
    }
    return 0;
}