Cod sursa(job #2034574)

Utilizator robertro1Benedek Robert George robertro1 Data 8 octombrie 2017 00:24:53
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>

using namespace std;
typedef unsigned long long ull;
ull val=0;
ull gasit;
ull exp(ull x,int p)
{
    ull e=0, z=p;
    while(x/p){e=e+x/p;
    p*=z;
    if(e > val && gasit==1) {gasit=0;break;}}
    return e;
}


int main()
{
ifstream f("pascal.in");
ofstream g("pascal.out");
int r,d,p,div=0;;
f>>r>>d;
if(r%2==1)
{


for(int i=0; i<=r/2; i++)
{
    gasit=0;
    val=exp(r-i,d)+exp(i,d);
    gasit=1;
    if(exp(r,d)>val) div++;


}
g<<2*div;
}
else
        {
                int gasit=0;

            for(int i=0; i<=r/2; i++)
            { if(i==r/2)
            {
                                 gasit=0;
                    val=exp(r-i,d)+exp(i,d);
                    gasit=1;
                    if(exp(r,d)>val) gasit=1;;

            }

                               gasit=0;
                    val=exp(r-i,d)+exp(i,d);
                    gasit=1;
                    if(exp(r,d)>val) div++;


            }
            if(gasit)
            g<<2*div-1;
            else
                g<<2*div;
        }



    return 0;
}