FAQ
Frequently Asked Questions
我的程序要在哪里输入和输出数据?
你的程序必须从stdin(基本输入)读入数据并且从stdout(基本输出)输出数据。例如,你使用C语言的话,使用scanf读入数据,使用printf输出数据,你使用C++语言的话,还可以使用cin和cout读入和输出数据。
** 注意:你提交的程序不能进行任何文件的读写操作,否则会返回“Wrong Answer”。 **
本OJ提供哪些编译器?编译环境是怎么样的?
本OJ目前提供多种语言编译器,它们的编译参数分别是:
gcc : gcc main.c -o main -Wall -lm -O2 -std=c99 --static -DONLINE_JUDGE
g++ : g++ main.cpp -O2 -Wall -lm --static -DONLINE_JUDGE -o main --std=gnu++11
java : javac Main.java
ruby : reek main.rb
perl : perl -c main.pl
pascal : fpc main.pas -O2 -Co -Ct -Ci
go : go build -ldflags "-s -w" main.go
lua : luac -o main main.lua
python2 : python2 -m py_compile main.py
python3 : python3 -m py_compile main.py
haskell : ghc -o main main.hs
目前服务器运行在Linux平台下,提供的编译器的版本分别是:
gcc 4.4.5 g++ 4.4.5 java 1.6.2 pascal 2.4.0 ruby 2.0 lua 5.1.4 perl 5.10 python2 2.7.3 python3 3.3.0 go 1.0 ghc 7.6.2
为什么我提交的程序在OJ运行得到了Compile Error?而在我的电脑上运行得很好?
不同的编译器之间有一些语法的差异,如果你电脑上使用的编译器与本OJ提供的编译器不同,请注意它们之间的差异,提交时请使用相应的编译器进行提交。
不同编程语言的时间是怎么限制的?
假设某个题目的标准时间限制是1000毫秒,内存限制是65536k,那么C、C++、go、haskell、lua、pascal时间和内存限制就是1000毫秒和65536k,其他语言:java、python2、python3、ruby、perl的时间和内存限制都相应放宽,是标准时间和内存的2倍,即时间限制是2000毫秒,内存限制是2*65536K
我要怎么使用64-bit整型?
C/C++
评测程序只支持long long
,不支持int64
有符号64-bit整型,取值范围为:-9223372036854775808
到 9223372036854775807
。
无符号64-bit整型,取值范围为:0
到 18446744073709551615
。
OJ返回的结果分别是什么意思?
以下是OJ可能返回的结果和其意义:
Accepted
恭喜! 你的程序是正确的。
Presentation Error
你的程序输出时表达错误,如果看到这样的结果,说明你的程序已经基本正确了,只是多或少打了换行符或者多或少输出了空格,检查一下你的程序和题目要求吧,胜利就在眼前!
Wrong Answer
你的程序输出的结果不正确。
Time Limit Exceeded
你的程序尝试使用超过题目限制的时间,可能是你的程序内存在死循环或者你的程序的算法效率太低。
Memory Limit Exceeded
你的程序尝试使用超过题目限制的内存。
Runtime Error
你的程序发生了运行时错误。可能是由于除以0、数组越界或指针访问出错等运行时问题。
Compile Error
你的程序不能通过编译,请点击该结果可以查看编译器提示。
Output Limit Exceeded
你的程序的输出过多。请检查你的程序是否存在死循环问题。
Waiting
你的程序正在评测中,请稍候。
第1000号题目怎么解答?
以下是第1000号题目的各种语言的参考程序:
- C语言
#include int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; }
- C++
#include using namespace std; int main() { int a,b; cin>>a>>b; cout<< a + b << endl; return 0;
}
- PASCAL
var a,b:integer; begin readln(a,b); writeln(a+b); end.
- Java
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner ( System.in ); int a,b; a=cin.nextInt(); b=cin.nextInt(); System.out.println(a+b); } }
- haskell
main = getLine >>= print . sum . map read . words
- go
package main import "fmt" func main(){ var a,b int fmt.Scanf("%d %d", &a,&b) fmt.Printf("%d", a+b) }
- lua
a,b = io.read("*number", "*number") print(a+b)
- perl
my ($a,$b) = split(/\D+/,); print "$a $b " . ($a + $b) . "\n";
- ruby
puts gets.split.map(&:to_i).inject(&:+)
- python2
print sum(int(x) for x in raw_input().split())
- python3
print(sum(int(x) for x in input().split()))