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;
}
原文地址:https://www.cnblogs.com/qscqesze/p/4993935.html