Cod sursa(job #1545363)

Utilizator Julian.FMI Caluian Iulian Julian. Data 6 decembrie 2015 18:04:17
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int main()
{long long r,c,d,dr2=0,dr3=0,dr5=0,p,aux,aux1,aux2,rez;
    fin>>r>>d;
p=2;while(p<=r){dr2+=r/p;p*=2;}
p=3;while(p<=r){dr3+=r/p;p*=3;}
p=5;while(p<=r){dr5+=r/p;p*=5;}
rez=0;

if(d==2)
for(c=1;c<r;c++)
{aux=dr2;
p=2;while(p<=r-c){aux-=(r-c)/p;p*=2;}
p=2;while(p<=c){aux-=(c)/p;p*=2;}
if(aux>0)rez++;}

else if(d==3)
for(c=1;c<r;c++)
{aux=dr3;
p=3;while(p<=r-c){aux-=(r-c)/p;p*=3;}
p=3;while(p<=c){aux-=(c)/p;p*=3;}
if(aux>0)rez++;}

else if(d==4)
for(c=1;c<r;c++)
{aux=dr2;
p=2;while(p<=r-c){aux-=(r-c)/p;p*=2;}
p=2;while(p<=c){aux-=(c)/p;p*=2;}
if(aux >1 && aux%2==0)rez++;}

else if(d==5)
for(c=1;c<r;c++){
aux=dr5;
p=5;while(p<=r-c){aux-=(r-c)/p;p*=5;}
p=5;while(p<=c){aux-=(c)/p;p*=5;}
if(aux>0)rez++;
}

else if(d==6)
for(c=1;c<r;c++)
{   aux1=dr3;
p=3;while(p<=r-c){aux-=(r-c)/p;p*=3;}
p=3;while(p<=c){aux-=(c)/p;p*=3;}
    aux2=dr2;
p=2;while(p<=r-c){aux-=(r-c)/p;p*=2;}
p=2;while(p<=c){aux-=(c)/p;p*=2;}
    if(aux1>0 && aux2>0)rez++;
}

fout<<rez;


}