Pagini recente » Cod sursa (job #1607073) | Cod sursa (job #2064261) | Cod sursa (job #2885031) | Cod sursa (job #3214775) | Cod sursa (job #2274284)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("1-sir.in");
ofstream out("1-sir.out");
const int MOD=194767;
int lgput(long long n,int k)
{
long long rez=1;
while(k)
{
if(k%2)
rez=(long long)(rez*n)%MOD;
n=(long long)(n*n)%MOD;
k/=2;
}
return rez;
}
int invmod(int val)
{
long long rez=1,i;
for(i=1;i<=val;i++)
rez=(long long)(rez*lgput(i,MOD-2))%MOD;
return rez;
}
int combinari(int n,int k)
{
int rez=1,i;
for(i=1;i<=n;i++)
rez=(rez*i)%MOD;
return (long long)(rez*invmod(k)*invmod(n-k))%MOD;
}
int main()
{
int n,k;
in>>n>>k;
if(fabs(k)>n||(n+k)%2)
out<<0;
else
out<<combinari(n,(n+k)/2);
return 0;
}