1 #include<iostream>
2 //#include<stdio.h>
3 #include<string>
4 #include<math.h>
5 using namespace std;
6
7
8 _int64 get(int n, string numStr) {
9 int len = numStr.size();
10 _int64 num1 = 0;
11 /*if(n <= 10){
12 for(int i =0; i < len;i++){
13 char c = numStr[i];
14 if( c >= '0' && c <= '9'){
15 num1 = num1 + (c -'0')*pow(n, len - i -1);
16 }
17 }
18 }*/
19 //if(n > 10) {
20 for(int i = 0; i < len; i++) {
21 char c = numStr[i];
22 if( c >= '0' && c <= '9'){
23 num1 = num1 + (c -'0')*pow(n, len - i -1);
24 }
25 if(c >= 'a' && c <= 'z') {
26 int num = c - 'a' + 10;
27 num1 = num1 + num * pow(n, len - i-1);
28 }
29 }
30 //}
31 return num1;
32 }
33 void invget(int n, _int64 sum, char* numStr) {
34 int k;//余数
35 _int64 num = sum;//商
36 int count = 0;
37 char* p = numStr;
38 while(num!=0) {
39 k = num % n;
40 num = num/n;
41 *numStr = (char)(k+'0');
42 if(n > 10) {
43 if(k >= 10) {
44 *numStr = (char)('a' + k - 10);
45 }
46 }
47 numStr++;
48 count++;
49 }
50 if(count == 0) {
51 *numStr++ = '0';
52 *numStr = '\0';
53 return;
54 }
55 int j = 0;
56 int end = count - 1;
57 while(end >= j){
58 char c = p[j];
59 p[j] = p[end];
60 p[end] = c;
61 j++;
62 end--;
63 }
64 *numStr = '\0';
65 }
66 bool check(int n, string numStr) {
67 for(int i = 0 ; i <numStr.size(); i++ ) {
68 char c = numStr[i];
69 if(!( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z'))) {
70 return false;
71 }
72
73 if(n > 10) {
74 if( c >= 'a' + n - 10) {
75 return false;
76 }
77 }
78 if( n <= 10) {
79 if( c >= '0' + n ) {
80 return false;
81 }
82 }
83
84 }
85 return true;
86 }
87 int main() {
88 int n;
89 string numStr1;
90 string numStr2;
91 cin >> n;
92 cin >> numStr1 >> numStr2;
93 //检查输入是否有错误
94 if(!check(n, numStr1) || !check(n, numStr2)) {
95 cout << -1 << endl;
96 return 0;
97 }
98
99 _int64 num1 = get(n, numStr1);
100 _int64 num2 = get(n, numStr2);
101 printf("%d\n",num1);
102 printf("%d\n",num2);
103 _int64 sum = num1 + num2;
104 int len = numStr1.size() > numStr2.size()? numStr1.size():numStr2.size();
105 char* sumStr = new char[len+2];
106 invget(n, sum, sumStr);
107 cout << sumStr << endl;
108
109 return 0;
110 }