Cod sursa(job #780189)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 19 august 2012 23:30:17
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.6 kb
#include <stdio.h>

FILE *f,*g;
int l,k,n,p,d,i,factor,j,r,c1,c2,c3,c4,c5,c6;
long long nr2,nr3,nr5;
int main ()
{
  f=fopen("pascal.in","r");
  g=fopen("pascal.out","w");

fscanf(f,"%ld",&r);
fscanf(f,"%ld",&d);
if (d!=1){
if ((r-1)%2==0)l=r/2;
else l=(r-1)/2+1;

for (j=1;j<=l;j++){

//pas1
for (i=r-j+1;i>r-j+1;i--){
p=i;
factor=2;
while (p%2==0){
nr2++;
p=p/2;
}
factor=3;
    while (p%factor==0){
    nr3++;
    p=p/factor;
    }
factor=5;
    while (p%factor==0){
    nr5++;
    p=p/factor;
    }

}


//pas2
for (i=j;i<=j;i++){
p=i;
factor=2;
while (p%2==0){
nr2--;
p=p/2;
}
factor=3;
    while (p%factor==0){
    nr3--;
    p=p/factor;
    }
factor=5;
    while (p%factor==0){
    nr5--;
    p=p/factor;
    }

}

if ((r-1)%2==1){
if (d==2) {if (nr2!=0)c2++;if (j<l && nr2!=0)c2++;}
 if (d==3) {if (nr3!=0)c3++;if (j<l && nr3!=0)c3++;}
 if (d==4) {if (nr2>1)c4++;if (j<l && nr2>1)c4++;}
 if (d==5) {if (nr5!=0)c5++;if (j<l && nr5!=0)c5++;}
if (d==6) {if(nr3!=0 && nr2!=0)c6++;if (j<l && nr3!=0 && nr2!=0)c6++;}
}
else {
if (d==2) {if (nr2!=0)c2++;if (j<=l && nr2!=0)c2++;}
 if (d==3) {if (nr3!=0)c3++;if (j<=l && nr3!=0)c3++;}
 if (d==4) {if (nr2>1)c4++;if (j<=l && nr2>1)c4++;}
 if (d==5) {if (nr5!=0)c5++;if (j<=l && nr5!=0)c5++;}
if (d==6) {if(nr3!=0 && nr2!=0)c6++;if (j<=l && nr3!=0 && nr2!=0)c6++;}
}

}

if (d==2) fprintf(g,"%ld",c2);
if (d==3) fprintf(g,"%ld",c3);
if (d==4) fprintf(g,"%ld",c4);
if (d==5) fprintf(g,"%ld",c5);
if (d==6) fprintf(g,"%ld",c6);

fclose(g);
return 0;

}
else fprintf(g,"%ld",r+1);
fclose(g);
return 0;
}