Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 81|回复: 0

OnlineJudge FAQ

[复制链接]

1

主题

1

帖子

5

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5
发表于 2019-10-9 20:59:12 | 显示全部楼层 |阅读模式
Q:我的程序要在哪里输入和输出数据?
A:你的程序必须从stdin(基本输入)读入数据并且从stdout(基本输出)输出数据。例如,你使用C语言的话,使用scanf读入数据,使用printf输出数据,你使用C++语言的话,还可以使用cin和cout读入和输出数据。
** 注意:你提交的程序不能进行任何文件的读写操作,否则会返回“Wrong Answer”。**

Q:本OJ提供哪些编译器?编译环境是怎么样的?
A:本OJ目前提供多种语言编译器,它们的编译参数分别是:
  1. gcc : gcc main.c -o main -Wall -lm -O2 -std=c99 --static -DONLINE_JUDGE
  2. g++ : g++ main.cpp -O2 -Wall -lm --static -DONLINE_JUDGE -o main --std=gnu++11
  3. java : javac Main.java
  4. ruby : reek main.rb
  5. perl : perl -c main.pl
  6. pascal : fpc main.pas -O2 -Co -Ct -Ci
  7. go : go build -ldflags "-s -w" main.go
  8. lua : luac -o main main.lua
  9. python2 : python2 -m py_compile main.py
  10. python3 : python3 -m py_compile main.py
  11. haskell : ghc -o main main.hs
复制代码
目前服务器运行在Linux平台下,提供的编译器的版本分别是:
  1. gcc     4.4.5
  2. g++     4.4.5
  3. java    1.6.2
  4. pascal  2.4.0
  5. ruby    2.0
  6. lua     5.1.4
  7. perl    5.10
  8. python2 2.7.3
  9. python3 3.3.0
  10. go      1.0
  11. ghc     7.6.2
复制代码
Q:为什么我提交的程序在OJ运行得到了Compile Error?而在我的电脑上运行得很好?
A:不同的编译器之间有一些语法的差异,如果你电脑上使用的编译器与本OJ提供的编译器不同,请注意它们之间的差异,提交时请使用相应的编译器进行提交。

Q:不同编程语言的时间是怎么限制的?
A:假设某个题目的标准时间限制是1000毫秒,内存限制是65536k,那么C、C++、go、haskell、lua、pascal时间和内存限制就是1000毫秒和65536k,其他语言:java、python2、python3、ruby、perl的时间和内存限制都相应放宽,是标准时间和内存的2倍,即时间限制是2000毫秒,内存限制是2*65536K

Q:我要怎么使用64-bit整型?
A:C/C++ 评测程序只支持long long,不支持int64
有符号64-bit整型,取值范围为:-9223372036854775808 到 9223372036854775807。
无符号64-bit整型,取值范围为:0 到 18446744073709551615。

Q:OJ返回的结果分别是什么意思?
A:以下是OJ可能返回的结果和其意义:
  • Accepted
恭喜! 你的程序是正确的。
  • Presentation Error
你的程序输出时表达错误,如果看到这样的结果,说明你的程序已经基本正确了,只是多或少打了换行符或者多或少输出了空格,检查一下你的程序和题目要求吧,胜利就在眼前!
  • Wrong Answer
你的程序输出的结果不正确。
  • Time Limit Exceeded
你的程序尝试使用超过题目限制的时间,可能是你的程序内存在死循环或者你的程序的算法效率太低。
  • Memory Limit Exceeded
你的程序尝试使用超过题目限制的内存。
  • Runtime Error
你的程序发生了运行时错误。可能是由于除以0、数组越界或指针访问出错等运行时问题。
  • Compile Error
你的程序不能通过编译,请点击该结果可以查看编译器提示。
  • Output Limit Exceeded
你的程序的输出过多。请检查你的程序是否存在死循环问题。
  • Waiting
你的程序正在评测中,请稍候。

Q:第1000号题目怎么解答?
A:以下是第1000号题目的各种语言的参考程序(以下格式为文本编辑问题):
  • C语言
  1. #include int main() { int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0; }
复制代码
  • C++
  1. #include using namespace std; int main() { int a,b; cin>>a>>b; cout<< a + b << endl; return 0; }
复制代码
  • PASCAL
  1. var    a,b:integer;begin    readln(a,b);    writeln(a+b);end.
复制代码
  • Java
  1. 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
  1. main = getLine >>= print . sum . map read . words
复制代码
  • go
  1. package mainimport "fmt"      func main(){          var a,b int          fmt.Scanf("%d %d", &a,&b)          fmt.Printf("%d", a+b)      }
复制代码
  • lua
  1. a,b = io.read("*number", "*number")print(a+b)
复制代码
  • perl
  1. my ($a,$b) = split(/\D+/,);print "$a $b " . ($a + $b) . "\n";
复制代码
  • ruby
  1. puts gets.split.map(&:to_i).inject(&:+)
复制代码
  • python2
  1. print sum(int(x) for x in raw_input().split())
复制代码
  • python3
  1. print(sum(int(x) for x in input().split()))
复制代码


来自:FAQ

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2020-3-29 08:32 , Processed in 0.062445 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表