Pagini recente » Cod sursa (job #271796) | Cod sursa (job #831779) | Cod sursa (job #540543) | Cod sursa (job #2069568) | Cod sursa (job #2054225)
#include <cstring>
#include <cstdio>
#include <vector>
#define N 500005
using namespace std;
int a, c;
long long mod=1, rez;
char s[N];
vector <int> b;
void calc_modulo()
{
for(int i=1;i<=c;i++)
mod=mod*10;
}
void calc_putere()
{
for(int i=0;i<strlen(s);i++)
{
int var;
if(s[i]>='0' && s[i]<='9')
var=s[i]-'0';
else
var=s[i]-'A'+10;
for(int i=3;i>=0;i--)
if(var>=(1<<i))
{
b.push_back(1);
var-=1<<i;
}
else
b.push_back(0);
}
}
void calc_rez()
{
long long x=1;
for(int i=0;i<b.size();i++)
{
rez=(rez*(x+1))%mod;
x=(x*x)%mod;
if(b[i])
{
x=(x*a)%mod;
rez=(rez+x)%mod;
}
}
}
int main()
{
freopen("calcul.in", "r", stdin);
freopen("calcul.out", "w", stdout);
scanf("%d\n%s\n%d\n", &a, s, &c);
calc_modulo();
a=a%mod;
calc_putere();
calc_rez();
printf("%lld", rez);
return 0;
}