Cod sursa(job #210680)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 28 septembrie 2008 17:03:38
Problema Sandokan Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
#define P 2000003
int N,K;
int Pow(int a,int b){
    long long x=1,y=a; 
    while(b > 0){
        if(b%2 == 1) x=(x*y)%P;
        y = (y*y)%P; 
        b /= 2;
    }
    return x%P;
}
int main(){
    int i,sol=1,r=1,inv;
    freopen("sandokan.in","r",stdin);
    freopen("sandokan.out","w",stdout);
    scanf("%d %d",&N,&K);
    K=N%(K-1);N--;K--;
    for (i=1;i<=K;++i){
        r=(long long)r*i%P;
        sol=(long long)sol*(N-K+1)%P;
        }
    inv=Pow(r,P-2);
    sol=(long long)sol*inv%P;
    printf("%d",sol);
    return 0;
    
}