Input

输入的第一行包括两个整数n和x(1 ≤ n ≤ 10, 2 ≤ x≤ 40),分别代表第一个数字的数位
个数和进制,第二行包括n个整数,代表a从高位开始的各个数位
输入的第三行包括两个整数m和y(1 ≤ m ≤ 10,2 ≤ y≤ 40, x≠ y),分别代表第二个数字的
数位个数和进制,第四行包括m个整数,代表b从高位开始的各个数位

Output

若a<b,输出‘<’
若a=b,输出‘=’
若a>b,输出‘>’

Example

样例输入①
6 2
1 0 1 1 1 1
2 10
4 7
样例输出①
=
样例输入②
3 3
1 0 2
2 5
2 4
样例输出②
<

 

超级水题,将所有数转成10进制即可,然而我不会进制转换……于是卡住了……

代码如下

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<functional>
#include<map>
using namespace std;
const int maxn = 1500;
typedef long long ll;
ll n,m,x,y;
ll a;
ll b;
ll sum1=0;
ll sum2=0;
int main()
{
	ios::sync_with_stdio(false);
	cin >> n >> x;
	for (int i = 1; i <= n; i++) {
		cin >> a;
		sum1 = sum1*x + a;
	//	cout << sum1 << endl;
	}
	cin >> m >> y;
	for (int i = 1; i <= m; i++) {
		cin >> b;
		sum2 = sum2*y + b;
	}
	if (sum1 == sum2)
		cout << "=" << endl;
	if (sum1 < sum2)
		cout << "<" << endl;
	if (sum1 > sum2)
		cout << ">" << endl;
	return 0;
}