Cod sursa(job #2203241)
| Utilizator | Data | 11 mai 2018 17:27:58 | |
|---|---|---|---|
| Problema | Pascal | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
#define MAX 2500010
using namespace std;
typedef long long ll;
int r,d,ii,ia,ans;
int psc[2][MAX];
int main()
{
ifstream f ("pascal.in");
ofstream g ("pascal.out");
f>>r>>d;
psc[0][0]=psc[1][1]=1;
for(int i=1;i<=r;i++){
ia=i%2,ii=1-ia;
for(int j=1;j<=i/2;j++)psc[ia][j]=(psc[ii][j-1]+psc[ii][j])%d;
}
for(int i=0;i<=r/2;i++)
ans+=(psc[r%2][i]==0);
ans*=2;
if(r%2==0)ans-=(psc[r%2][r/2]==0);
g<<ans;
f.close ();
g.close ();
return 0;
}
