Cod sursa(job #1324053)

Utilizator diana97Diana Ghinea diana97 Data 21 ianuarie 2015 19:18:23
Problema Sandokan Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f ("sandokan.in");
ofstream g ("sandokan.out");

int MOD = 2000003;
const int NMAX = 5000 + 1;


int n, k;

long long factorial(int x) {
    long long rez = 1;
    for (int i = 2; i <= x; i++)
        rez = (rez * i) % MOD;
    return rez;
}

long long putere(int x, int p) {
    if (p == 0) return 1;
    long long y = putere(x, p / 2);
    y = (y * y) % MOD;
    if (p % 2 == 0) return y;
    return (y * x) % MOD;
}


inline long long invers_modular(long long x) {
   // cout << x << ' ';
    return putere(x, MOD - 2);
}

long long combinari(long long n, long long k) {
    long long sol;
    sol = (factorial(n) * invers_modular(factorial(k))) % MOD;
    sol = (sol * invers_modular(factorial(n - k))) % MOD;
    return sol;
}

int main() {
    f >> n >> k;
    g << combinari(n - 1, k - 1);
}