Cod sursa(job #1089124)

Utilizator Athena99Anghel Anca Athena99 Data 21 ianuarie 2014 15:33:59
Problema Sandokan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

using namespace std;

ifstream fin("sandokan.in");
ofstream fout("sandokan.out");

const int mod= 2000003;
const int nmax= 5000;

int d[2][nmax+1];

int main(  ) {
    int n, k;
    fin>>n>>k;
    k= (n-1)%(k-1);
    if ( n-k<k ) {
        k= n-k;
    }

    d[1][1]= d[1][0]= d[0][0]= 1;
    for ( int i= 2; i<=n; ++i ) {
        int a= i%2, b= (i+1)%2;
        for ( int j= 1; j<=k; ++j ) {
            d[a][j]= (d[b][j-1]+d[b][j])%mod;
        }
    }

    int sol= 1;
    if ( k>0 ) {
        sol= d[(n-1)%2][k];
    }
    fout<<sol<<"\n";

    return 0;
}