Cod sursa(job #2455743)

Utilizator ana.pintiliciucAna Maria Pintiliciuc ana.pintiliciuc Data 12 septembrie 2019 17:17:27
Problema Pascal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.64 kb
#include <cstdio>

using namespace std;

int r, d, nr;

int sum(int n, int d)
{
    int s=0;
    while(n)
    {
        int rest=n/d;
        s+=rest;
        n=rest;
    }
    return s;
}


int main()
{
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);

    scanf("%d %d", &r, &d);
    int sus2=sum(r, 2);
    int sus3=sum(r, 3);
    int sus5=sum(r, 5);
    int ok=0;
    for(int i=0; i<=(r+1)/2; i++)
    {
        sus2-=(sum(i, 2)+sum(r-i, 2));
        sus3-=(sum(i, 3)+sum(r-i, 3));
        sus2-=(sum(i, 5)+sum(r-i, 5));
        if(d==2)
        {
            if(sus2!=0)
            {
                nr+=2;
                if(i==(r+1)/2)
                    nr--;
            }
        }
        else if(d==3)
        {
            if(sus3!=0)
            {
                nr+=2;
                if(i==(r+1)/2)
                    nr--;
            }
        }
        else if(d==4)
        {
            if(sus2>=2)
            {
                nr+=2;
                if(i==(r+1)/2)
                    nr--;
            }
        }
        else if(d==5)
        {
            if(sus5!=0)
            {
                nr+=2;
                if(i==(r+1)/2)
                    nr--;
            }
        }
        else if(d==6)
        {
            if(sus2!=0 && sus3!=0)
            {
                nr+=2;
                if(i==(r+1)/2)
                    nr--;
            }
        }
        sus2+=(sum(i, 2)+sum(r-i, 2));
        sus3+=(sum(i, 3)+sum(r-i, 3));
        sus5+=(sum(i, 5)+sum(r-i, 5));
    }

    printf("%d", nr);

    return 0;
}