Cod sursa(job #210679)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 28 septembrie 2008 16:55:57
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 n){
    int w;
    if (n==0) return 1;
    w=Pow(a,n>>1);
    w=(long long)w*w%P;
    if (n&1) return (long long)w*a%P;
    else return w; 
   
} 
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;
    
}