Cod sursa(job #1217367)

Utilizator nicolaegutaNicolae Guta nicolaeguta Data 7 august 2014 10:38:21
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
#define Nmax 5000005

using namespace std;

int logg[Nmax],dp[Nmax];

int main()
{
    int N,D,d,i,sol=0;
    freopen ("pascal.in","r",stdin);
    freopen ("pascal.out","w",stdout);
    scanf("%d%d", &N,&D);
    if(D==4)
        d=2;
    else
        if(D==6)
            d=3;
        else
            d=D;
    logg[d]=1;
    for(i=d+1;i<=N;++i)
        if(i%d==0)
            logg[i]=logg[i/d]+1;
    for(i=2;i<=N;++i)
        dp[i]=dp[i-1]+logg[i];
    for(i=0;i<=N;++i)
    {
        if(D==4)
        {
            if(dp[N]-dp[i]-dp[N-i]>1)
                ++sol;
        }
        else
            if(dp[N]>dp[i]+dp[N-i])
                ++sol;
    }
    printf("%d\n", sol);
    return 0;
}