题目链接: https://vjudge.net/problem/HDU-2106
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
char a[20];
ll pow(int x, int p, int y)
{
if(y == 0) return p;
pow(x, p*x, y-1);
}
ll AnyToDec(char a[], int t, int len)
{
ll ans = 0;
for(int i = len - 1; i >= 0; --i)
ans += (a[i] - '0') * pow(t, 1, len - i - 1);
return ans;
}
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
ll ans = 0;
while(n --)
{
char key;
int idx = 0, t;
getchar();
while((key = getchar()) != EOF && key != '(')
a[idx++] = key;
scanf("%d)", &t);
ans += AnyToDec(a, t, idx);
}
printf("%lld\n", ans);
}
return 0;
}