题目描述
author: Online Judge 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/1000
Description
作为所有 Online Judge 的传统题目,你只需读两个整数,输出即可,保证输入的数绝对值不超过1000。
Input Format
一行,两个空格隔开的整数A,B。
Output Format
一个数A+B。
Sample Input
3 2
Sample Output
5
输入格式
详见题目描述
输出格式
详见题目描述
样例输入
详见题目描述
样例输出
详见题目描述
数据范围
详见题目描述
题目解答
作为所有的OJ的一个老题目不得不说这个题目确实有存在的意义,甚至可以说成是梦开始的地方。 没有什么特别要说的,想说的内容还是要引申一下
不如看一看另外一道 A+B 的题目啦【传送门】。相信这个题目一定比那一个题目更加有意义,虽然答案就在题目里面。但是认真读完一遍一定是会有收获的,题面也是题解的好题目,可以看一下下附录的题目,不想看附录的直接看下面的总结也可:
题目总结
cout << endl;
是一个贼费时间的操作,建议修改为cout << a + b << '\n';
cin >> a
、cout << a
都是贼费时间的操作,建议修改为scanf("%d", &a);
、printf("%d", a);
- 以上两条都是废话,我们的 OJ 不会因为这个原因让你过不了这个题目,到此为止。
附录题目描述
输入 A , B A, B A,B,请计算 S = A + B . S=A+B. S=A+B.
Input
请从 stdin
读入。
输入第一行为一个正整数 T ≤ 1 0 6 T\leq 10^6 T≤106,表示测试组数。
每组数据单独占一行,为用空格隔开的整数 A , B ( 0 ≤ A , B ≤ 1 0 9 ) A, B (0 \leq A, B \leq 10 ^ 9) A,B(0≤A,B≤109)。
Output
请输出到 stdout
中。
对于每组数据输出一行,包含一个整数 S S S,为你的答案。
Sample Input
3
1 1
114 514
1000000000 1000000000
Sample Output
2
628
2000000000
Constraints
Time Limit: 3s
Memory Limit: 128MB
Notes
参考实现:
#include <cstdio>
int main() {
int T;
scanf("%d", &T);
while (T--) {
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
}
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int a, b;
cin >> a >> b;
cout << a + b << endl;
}
}
提交以上代码,你可以注意到后者运行时间显著高于前者,这是因为:
- std::cin / std::cout 与 stdio 同步导致其失去缓冲。
- std::endl 会调用 std::cout.flush(),而这个操作非常耗时。
因此,如果你需要使用 cin 和 cout 作为你的输入输出,而你的程序在超时的边缘试探时,请考虑以下写法以提升性能:
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int T;
cin >> T;
while (T--) {
int a, b;
cin >> a >> b;
cout << a + b << '\n';
}
}
更多信息你可以在这里获取到。
当然,通常来说你不必担心出现这样的问题。我们保证:作业的参考程序能够使用最慢的输入输出方式在时限内通过。
但是,由于服务器真的挺慢的,所以可能会出现本地无压力 AC 提交却 TLE 的情况。如果遇到这种情况,请联系我们进行修正。