Problem Description
As we all know, in the computer science, an integer A is in the range of 32-signed integer, which means the integer A is between -2^31 and (2^31)-1 (inclusive), and A is a 64-signed integer, which means A is between -2^63 and (2^63)-1(inclusive). Now we give the K-signed range, and two K-signed integers A and B, you should check whether the sum of A and B is beyond the range of K-signed integer or not.
Input
There will be many cases to calculate. In each case, there comes the integer K (2<=K<=64) first in a single line. Then following the line, there is another single line which has two K-signed integers A and B.
Output
For each case, you should estimate whether the sum is beyond the range. If exceeded, print “Yes”, otherwise “WaHaHa”.
Sample Input
32
100 100
Sample Output
WaHaHa
#include "stdafx.h"
#include "iostream"
using namespace std;
int main()
{
int k = 0;
long int A = 0, B = 0;
double Sum = 0.0;
//input k , A and B
cin >> k;
cin >> A;
cin >> B;
if (k < 2 || k > 64)
{
cout << "k is not in [2, 64]"<<endl;
return 0;
}
Sum = (double)A + (double)B;
if (Sum > pow(2, k) )
{
cout << "yes" << endl;
return 0;
}
else
{
cout << "WaHaHa" << endl;
return 0;
}
return 0;
}
http://www.acmerblog.com/hdu-2116-has-the-sum-exceeded-3261.html