給定區間 [-2^31, 2^31] 內的三個整數 A、B、C,判斷 A+B 是否大於 C。輸入第一行為測試用例數 T (≤10),其後每行包含 A、B、C。輸出格式要求:Case #X: true 或 Case #X: false。
很多初學者會困惑:到底要輸出「所有輸入後再輸出結果」還是「讀一組、輸一組」?
4 1 2 3 2 3 4 2147483647 0 2147483646 0 -2147483648 -2147483647 Case #1: false Case #2: true Case #3: true Case #4: false
4 1 2 3 Case #1: false 2 3 4 Case #2: true 2147483647 0 2147483646 Case #3: true 0 -2147483648 -2147483647 Case #4: false
在線評判系統(OJ)中,標準輸入 (stdin) 與標準輸出 (stdout) 是完全分離的管道。評判程式會:
因此,你的程式何時輸出、中間是否穿插輸入提示,評判系統完全不關心,只要最終 stdout 內容完全一致即可。這就是為何兩種樣式都能 Accepted 的原因。
scanf/cin 讀取,printf/cout 輸出即可#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
if (!(cin >> T)) return 0;
for (int cas = 1; cas <= T; ++cas) {
long long A, B, C;
cin >> A >> B >> C;
cout << "Case #" << cas << ": " << (A + B > C ? "true" : "false") << '\n';
}
return 0;
}
理解 stdin/stdout 分離機制,是 OJ 刷題的基礎功力之一。