Cod sursa(job #795386)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int v[5000013];
int g[5000013];
int main()
{
int n,mod;
ifstream f("pascal.in");
ofstream r("pascal.out");
f>>n>>mod;
v[++v[0]]=0;
v[++v[0]]=1;
v[++v[0]]=0;
for(int i=1;i<=n;i++)
{
if(i%2==1)
{
g[0]=0;
g[++g[0]]=0;
for(int j=2;j<=v[0];j++)
g[++g[0]]=v[j]+v[j-1];
g[++g[0]]=0;
}
else
{
v[0]=0;
v[++v[0]]=0;
for(int j=2;j<=g[0];j++)
v[++v[0]]=g[j]+g[j-1];
v[++v[0]]=0;
}
}
int nr=0;
if(n%2==0)
for(int i=1;i<=v[0];i++)
if(v[i] && v[i]%mod==0)
nr++;
else
for(int i=1;i<=g[0];i++)
if(g[i] && g[i]%mod==0)
nr++;
r<<nr;
return 0;
}