Cod sursa(job #2093348)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 23 decembrie 2017 14:23:46
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream>

using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
long long cateded(int i,int d)
{
    int dd=d;
    long long s1=0;
    while(dd<=i)
    {
        s1+=i/dd;
        dd*=d;
    }
    return s1;
}
int main()
{
    int r,d,cnt=0,i,cazan;
    cin>>r>>d;
    cazan=(r+1)/2;
    if(d==2 || d==3 || d==5)
    {
    for(i=1; i<=cazan; i++)
    {
        if(cateded((r),d)>cateded((r-i+1),d)+cateded((i-1),d))
        cnt+=2;

    }
    if(r%2==0)
    if(cateded((r),d)>cateded((r-cazan),d)+cateded(cazan,d))
        cnt++;
    }
    else
    if(d==4)
    {
        for(i=1;i<=cazan;i++)
        {
            if(cateded((r),d)-1>cateded((r-i+1),d)+cateded((i-1),d))
        cnt+=2;
        }
        if(r%2==0)
    if(cateded((r),d)-1>cateded((r-cazan),d)+cateded((cazan-1),d))
        cnt++;
    }
    else
    if(d==6)
    {
        for(i=1;i<=cazan;i++)
        {
            if(cateded((r),2)>cateded((r-i+1),2)+cateded((i-1),2) && cateded((r),3)-1>cateded((r-i+1),3)+cateded((i-1),3))
            cnt+=2;
        }
        if(r%2==0)
        if(cateded((r),2)>cateded((r-cazan),2)+cateded(cazan,2) && cateded((r),3)-1>cateded((r-cazan),3)+cateded(cazan,3))
            cnt+=2;
    }
    cout<<cnt;
    return 0;
}