Pagini recente » Cod sursa (job #839799) | Cod sursa (job #1788515) | Cod sursa (job #155122) | Cod sursa (job #2189937) | Cod sursa (job #2911172)
#include <fstream>
#define NMAX 5000000
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
int r, d, D[NMAX+1], T[NMAX+1], C[NMAX+1], doi, trei, cinci;
int nr, i;
int main()
{
fin>>r>>d;
for(i=1; i<=r; i++)
{
if(i%2==0)D[i]=D[i/2]+1;
if(i%3==0)T[i]=T[i/3]+1;
if(i%5==0) C[i]=C[i/5]+1;
}
for(i=1; i<=(r-1)/2; i++)
{
doi+=D[r-i+1]-D[i];
trei+=T[r-i+1]-T[i];
cinci+=C[r-i+1]-C[i];
if(d==2 && doi)
nr++;
if(d==3 && trei)
nr++;
if(d==5 && cinci)
nr++;
if(d==6 && doi && trei )
nr++;
if(d==4 && doi>=2)
nr++;
}
if(r%2==1)
fout<<nr*2;
else
{
int mij=0;
doi+=D[r-i+1]-D[i];
trei+=T[r-i+1]-T[i];
cinci+=C[r-i+1]-C[i];
if(d==2 && doi)
mij=1;
if(d==3 && trei)
mij=1;
if(d==5 && cinci)
mij=1;
if(d==6 && doi && trei )
mij=1;
if(d==4 && doi>=2)
mij=1;
fout<<nr*2+mij;
}
///O(n)
return 0;
}