Cod sursa(job #2900413)
Utilizator | Data | 10 mai 2022 20:55:18 | |
---|---|---|---|
Problema | Sandokan | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#define M 2000003
#define LEN 2<<13
#define base return 1
using namespace std;
ifstream f("sandokan.in");
ofstream g("sandokan.out");
int DP[LEN];
int solutie(int n, int k){
DP[0] = 1;
if(k > n)
base;
for(unsigned int i = 1; i <= n; ++i)
for(unsigned j = i; j > 0; --j)
DP[j] = (DP[j]+DP[j-1])%M;
return DP[k];
}
int main(){
int n,k;
f >> n >> k;
int a = n-1;
int b = (n-1)%(k-1);
g << solutie(a,b) << endl;
}