Cod sursa(job #69498)
Utilizator | Data | 3 iulie 2007 12:23:25 | |
---|---|---|---|
Problema | Pascal | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<stdio.h>
#include<string.h>
long factr,facti,factri,a,b,n,i,j,r,d;
FILE *f1,*f2;
int main(){
f1=fopen("pascal.in","r");
f2=fopen("pascal.out","w");
fscanf(f1,"%ld%ld",&r,&d);
factr=1;
for(i=1;i<=r;factr=factr*i,i++);
factri=factr;
facti=1;
for(i=0;i<=(r+1)/2+(r+1)%2-1;i++){
if(i!=0){
facti=facti*i;
factri=factri/(r-i+1);
}
if(factr/factri/facti%d==0){
b++;
if(i==(r+1)/2+(r+1)%2-1){
a=1;
}
}
}
b=b*2;
if(a && (r+1)%2){
b--;
}
fprintf(f2,"%ld",b);
return 0;
}