Cod sursa(job #1799154)

Utilizator NineshadowCarapcea Antonio Nineshadow Data 5 noiembrie 2016 20:47:51
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("preasimplu.in");
ofstream out("preasimplu.out");
typedef long long llong;
llong T,n,k,mod,s;
llong fact(llong n){
    if(n==0)return 1;
    return n*fact(n-1);
}
llong C(llong n,llong k){
    if(k>n) return 0;
    return fact(n)/(fact(k)*fact(n-k));
}
int main()
{
    in>>T;
    for(;T>0;T--)
    {
        in>>n>>k>>mod;
        s=0;
        for(int i=0;i<=2*k&&i<=n;i+=2)
            s=(s+C(n+1,i)%mod)%mod;
        if(k==1 || n==1)s--;
        out<<s<<'\n';
    }
    return 0;
}