PAT A1065 A+B and C (64bit)

思路:简单的溢出判断题,由于 A B C 均处于 long long 的数据范围内。

如果 A + B 的真值大于 long long 上限,则 A + B 的真值一定大于 C,此时 A > 0, B > 0, A + B < 0

如果 A + B 的真值小于 long long 下限,则 A + B 的真值一定小于 C,此时 A < 0, B < 0, A + B > 0

#include<iostream>
using namespace std;

int main() {
    int T;
    long long A, B, C, res;
    bool flag;
    cin >> T;
    for(int i = 1; i <= T; i++) {
        cin >> A >> B >> C;
        res = A + B;
        if(A > 0 && B > 0 && res < 0) flag = true;
        else if(A < 0 && B < 0 && res > 0) flag = false;
        else if(res > C) flag = true;
        else flag = false;
        cout << "Case #" << i << ": ";
        if(flag) cout << "true";
        else cout << "false";
        cout << endl;
    }
    return 0;
}