Cod sursa(job #2053302)

Utilizator dumitrescugeorgeGeorge Dumitrescu dumitrescugeorge Data 31 octombrie 2017 17:44:11
Problema Calcul Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char b[300];
long long a,c,n=0,p=1;
void citire()
{
    scanf("%lld\n",&a);
    scanf("%s",b);
    scanf("%lld",&c);
    for(long long i=1;i<=c;i++)
        p*=10;
}
void transformare()
{
    long long l=1;
    for(long long i=strlen(b)-1;i>=0;i--)
        {if(b[i]>'9')
           n+=((b[i]-'A')+10)*l;
           else
            n+=(b[i]-'0')*l;
        l*=16;
        }
}
long long exp(long a,long b)
{
    long long x=1;
    for(long long i=1;i<=b;i++)
        x*=a;
    return x;
}
long long facere(long long i)
{
    if(i==1)
        return a;
    if(i%2==0)
    {
        return ((exp(a,i/2)+1)*facere(i/2))%p;
    }
    else
    {
        return a*(1+facere(i-1))%p;
    }
}
void afisare()
{
    long long z=facere(n)%p;
    printf("%lld",z);
}
int main()
{
    freopen("calcul.in","r",stdin);
    freopen("calcul.out","w",stdout);
    citire();
    transformare();
    afisare();
  //  cout << "Hello world!" << endl;
    return 0;
}