1065. A+B and C (64bit) (20)

来源:互联网 发布:宇多田光知乎 编辑:程序博客网 时间:2024/06/07 19:33

Given three integers A, B and C in [-263, 263], you are supposed to tell whether A+B > C.

Input Specification:

The first line of the input gives the positive number of test cases, T (<=10). Then T test cases follow, each consists of a single line containing three integers A, B and C, separated by single spaces.

Output Specification:

For each test case, output in one line "Case #X: true" if A+B>C, or "Case #X: false" otherwise, where X is the case number (starting from 1).

Sample Input:
31 2 32 3 49223372036854775807 -9223372036854775808 0
Sample Output:
Case #1: falseCase #2: trueCase #3: false
注意溢出情况,long long +long long会超出范围,

如果a>0&&b>0 &&a+b<0 说明a+b溢出,肯定大于c

如果a<0&&b<0 &&a+b>0 说明a+b溢出,肯定小于c

注意这两种情况

#include <cstdio>#include <vector>#include <algorithm>#include <cmath>#include <queue>#include <iostream>using namespace std;int main(){int n;cin>>n;for(int i=1;i<=n;i++){long long a,b,c;scanf("%lld %lld %lld", &a, &b, &c);long long sum=a+b;printf("Case #%d: ",i);if(a>0&&b>0&&sum<=0){cout<<"true"<<endl; }else if(a<0&&b<0&&sum>=0){cout<<"false"<<endl;}else{if(sum>c) cout<<"true"<<endl; else cout<<"false"<<endl;}}return 0;}



原创粉丝点击