Codeforces Round #333 (Div. 2) A. Two Bases 水题
A. Two Bases
Time Limit: 20 Sec
Memory Limit: 256 MB
题目连接
http://codeforces.com/contest/602/problem/A
Description
After seeing the "ALL YOUR BASE ARE BELONG TO US" meme for the first time, numbers X and Y realised that they have different bases, which complicated their relations.
You're given a number X represented in base bx and a number Y represented in base by. Compare those two numbers.
Input
The first line of the input contains two space-separated integers n and bx (1 ≤ n ≤ 10, 2 ≤ bx ≤ 40), where n is the number of digits in the bx-based representation of X.The second line contains n space-separated integers x1, x2, ..., xn (0 ≤ xi < bx) — the digits of X. They are given in the order from the most significant digit to the least significant one.The following two lines describe Y in the same way: the third line contains two space-separated integers m and by (1 ≤ m ≤ 10,2 ≤ by ≤ 40, bx ≠ by), where m is the number of digits in the by-based representation of Y, and the fourth line contains m space-separated integers y1, y2, ..., ym (0 ≤ yi < by) — the digits of Y.There will be no leading zeroes. Both X and Y will be positive. All digits of both numbers are given in the standard decimal numeral system.
Output
Output a single character (quotes for clarity):
- '<' if X < Y
- '>' if X > Y
- '=' if X = Y
Sample Input
6 2
1 0 1 1 1 1
2 10
4 7
Sample Output
=
HINT
题意
给你两个在不同进制下的数,然后让你输出a>b还是a=b还是a<b
题解:
数很显然是在longlong范围内的,于是我们就用longlong去模拟就好了
代码:
#include<iostream> #include<stdio.h> using namespace std; long long a,b; long long n,t; int main() { cin>>n>>t; for(int i=0;i<n;i++) { long long temp;cin>>temp; a = a*t+temp; } cin>>n>>t; for(int i=0;i<n;i++) { long long temp;cin>>temp; b = b*t+temp; } if(a>b)cout<<">"<<endl; else if(a<b)cout<<"<"<<endl; else cout<<"="<<endl; }