常见OJ系统评判结果
- Accepted (AC):程序是正确的
- Wrong Answer (WA):你的程序运行的结果不正确,对于部分或者全部的测试数据没有输出正确的结果。通过正确性和鲁棒性(边界数据)来考虑改进代码
- Time Limit Exceeded (TLE):你的程序运行超过了时间限制。通过正确性(死循环或无限递归)和高效性(时间复杂度)来考虑改进代码
- Memory Limit Exceeded (MLE):你的程序运行超过了空间限制,如数组过大,不断申请
- Output Limit Exceeded (OLE):程序输出了过多内容,通常是死循环输出导致
- Runtime Error (RE):运行时出现错误,如数组越界、异常调用(指针乱指)、堆栈溢出(递归爆栈)、浮点错误(除数为0、模数为0)
- Presention Error (PE):程序运行的结果是正确的,但是格式和正确结果有点不一样。比如中间多了回车或者空格,请仔细检查程序的输出部分,已经非常接近AC。通过考虑多余和缺失来改进代码
- Compilation Error:编译错误
常见OJ系统输入输出格式
-
(洛谷P1001)
输入格式:一个case输入;
输出格式:一个输出结果#include <iostream> using namespace std; int main() { int a,b; while(cin >> a >> b) cout << a+b <<endl; return 0; }
-
(杭电OJ1089)
输入格式:有多个case输入,直到文件结束;
输出格式:一行一个结果#include <iostream> using namespace std; int main() { int a,b; ios::sync_with_stdio(false);//提高c++效率 while(cin >> a >> b) cout << a+b <<endl; return 0; }
-
(杭电OJ1090)
输入格式:先输入case个数,再依次输入每个case;
输出格式: 一行一个结果#include <iostream> using namespace std; int main() { int n,a,b; cin >> n; while(n != 0){ cin >> a >> b; cout << a+b <<endl; n--; } return 0; }
-
(杭电OJ1091)
输入格式:每行输入一组case,当case中得手满足某种情况时退出;
输出格式:一行一个结果#include <iostream> using namespace std; int main() { int a,b; while(true){ cin >> a >> b; if(a == 0 && b == 0) break; cout << a+b <<endl;//一行一个结果 } return 0; }
-
(杭电OJ1095)
输入格式:输入直到文件结束;
输出格式:一行一个结果,结果输完后还有一个blank line#include <iostream> using namespace std; int main() { int a,b; while(cin >> a >> b){ cout << a+b <<endl; cout << endl; } return 0; }
-
(杭电OJ1096)
输入格式:一开始输入总的case数,每组case一开始有控制该组输入个数
输出格式:一行一个结果,两个结果之间有一个回车,注意最后一个case#include <iostream> using namespace std; int main() { int casenum,n,sum; while(casenum--){ int x; sum = 0; cin >> n; while(n--){ cin >> x; sum += x; } cout << sum <<endl; if(casenum != 0) cout << endl; } return 0; }