Pagini recente » Cod sursa (job #1152681) | Cod sursa (job #212803) | Cod sursa (job #316450) | Cod sursa (job #2519055) | Cod sursa (job #3153688)
#include <fstream>
using namespace std;
ifstream cin ("sandokan.in");
ofstream cout ("sandokan.out");
const int mod = 2e6 + 3;
int Invers (const int valoare)
{
return valoare <= 1 ? 1 : mod - 1LL * (mod / valoare) * Invers(mod % valoare) % mod;
}
int Combinari (int total , int luate)
{
int numarator = 1 , numitor = 1;
luate = min(luate , total - luate);
for (int valoare = 1 ; valoare <= luate ; valoare++) {
numarator = 1LL * numarator * (total - luate + valoare) % mod;
numitor = 1LL * numitor * valoare % mod;
}
return 1LL * numarator * Invers(numitor) % mod;
}
int main ()
{
int lungime_totala , lungime_subsir;
cin >> lungime_totala >> lungime_subsir;
cout << Combinari(lungime_totala - 1 , (lungime_totala - 1) % (lungime_subsir - 1));
cout.close(); cin.close();
return 0;
}