Cod sursa(job #2060781)

Utilizator andrei2000mAndrei Moldoveanu andrei2000m Data 8 noiembrie 2017 18:29:02
Problema Sandokan Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

using namespace std;
ifstream f("sandokan.in");
ofstream g("sandokan.out");
int q=2000003;
int main()
{   int n,k,i,v[5001],nr,a=1,b=1,aux,r,c,x,x0=1,x1=0;
    f>>n>>k;
    for (i=1;i<=n;i++)
        f>>v[i];
    nr=n;
    while (nr>=k)
    {
        nr=nr-(k-1);
    }
    n--;nr--;
    for (i=2;i<=n;i++)
    {
        if (i<=nr) b=(b*(i%q))%q;
        if (i>n-nr) a=(a*(i%q))%q;
    }
    aux=q;
    while (aux!=0)
    {
        r=b%aux;
        c=b/aux;
        b=aux;
        aux=r;
        x=x0-c*x1;
        x0=x1;
        x1=x;
    }
    if (x0<0) x0+=q;
    g<<(x0*a)%q;
    return 0;
}