Cod sursa(job #2495581)

Utilizator RedXtreme45Catalin RedXtreme45 Data 19 noiembrie 2019 17:46:44
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#define Mod 666013
using namespace std;
ifstream fin("nmult.in");
ofstream fout("nmult.out");
long long int n,k,w;
long long int expon(long long int n,long long int p)
{
    long long int a=n;
    long long int sol=1;
    for (long long int i=0;(1<<i)<=p;i++)
    {
        if (((1<<i) & p)>0)
        {
            sol=(sol*a)%Mod;
        }
        a=(a*a)%Mod;
    }
    return sol;
}
long long int rezolvare (){
    long long int a=1,b=1;
    long long int i;
    for (i=n-k+1;i<=n;i++)
    {
        a=(a*i)%Mod;
    }
    for (i=2;i<=k;i++)
    {
        b=(b*i)%Mod;
    }
    return (a*(expon(b,666011)))%Mod;
}

int main()
{
    fin>>n>>k>>w;
    int x=(k-1)*(w-1);
    n=n-x;
    if (n<k)
        fout<<0;
    else if (n==k)
        fout<<n;
    else
    {
        fout<<rezolvare();
    }
    return 0;
}