Cod sursa(job #1414569)

Utilizator tudor_bonifateTudor Bonifate tudor_bonifate Data 2 aprilie 2015 19:25:52
Problema Sandokan Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <algorithm>
#define MOD 2000003
using namespace std;
long long a[5001];
double p;
double rest(double x, int y)
{
    int nr=0;
    while (x>=y)
    {
        x=x-y;
        nr++;
    }
    return x-y*nr;
}
int aprox(double p)
{
    if ((p-(int)(p))<0.00001) return (int)(p);
    if ((p-(int)(p))>0.99999) return (int)(p)+1;
}
int n,k,i,x,y;
long long Max;
int main()
{
    freopen("sandokan.in","r",stdin);
    freopen("sandokan.out","w",stdout);
    scanf("%d %d\n",&n,&k);
    Max=-1;
    for (i=1; i<=n; i++) scanf("%d",&a[i]);
    p=1;
    x=n-(k-1)*((n-k)/(k-1)+1);
    y=x-1;
    for (i=1; i<=x-y; i++)
    {
        p=p*(1.0*(y+i))/(1.0*i);
        p=rest(p,MOD);
    }
    printf("%d\n",aprox(p));

    return 0;
}