Cod sursa(job #464319)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 19 iunie 2010 19:38:48
Problema Sandokan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>

using namespace std;

#define file_in "sandokan.in"
#define file_out "sandokan.out"

#define nmax 5010

#define mod 2000003

int n,k,p;
int comb[2][nmax];

void citire()
{
    //freopen(file_in,"r",stdin);
    //freopen(file_out,"w",stdout);

    scanf("%d %d", &n, &k);
}


void solve()
{
    int i,j;
     p=n%(k-1);
     if (p==0) p=k-1;
     //n--;
     p--;

     printf("%d %d\n", n,p);
     //calculeaza combinari
     comb[0][0]=1;
     int ind=0;
     for (i=1;i<=n;++i,ind^=1)
     {
         comb[ind][0]=1;
         for (j=1;j<=i;++j)
              comb[ind][j]=(comb[ind^1][j]+comb[ind^1][j-1])%mod;
     }

     printf("%d", comb[ind^1][p]);

}

int main()
{
    citire();
    solve();

    fclose(stdin);
    fclose(stdout);

    return 0;
}