F.A.Q / 常见问题解答
Q Which programming languages can I use and what are the compiler options?
A Online Judge supports C, C++ and Java, and uses GCC, G++ and JDK6 compiler. The version and compile options are:
- GCC (v4.7.2): gcc.exe src.c -o test.exe
- G++ (v4.7.2): g++.exe src.c -o test.exe
- JDK6 (Update 45): javac.exe -encoding utf-8 Main.java
Q How can I write program at Online Judge?
A Your program should read input from stdin("Standard Input") and write output to stdout("Standard Output").
This is a sample solution for the A + B problem (Problem 1000) in the C language:
And the same problem in C++:
And the same problem in Java:
Q What are the meanings of the judge's replies?
A Here is a list of the Judge's replies and their meaning:
- Pending / Rejudge Pending: Your program is in the waiting queue, please wait a moment.
- Judging: Your program is judging on the server.
- Compile Error: The compiler fails to compile your program, you can view more information in "Online Status".
- Runtime Error: Your program failed during the execution, you can view more information in "Online Status".
- Time Limit Exceeded: Your program tried to run during too much time.
- Memory Limit Exceeded: Your program tried to use more memory than the judge default settings.
- Output Limit Exceeded: Your program tried to write too much information. Be sure that your program has no infinite loop.
- Wrong Answer: Your output is incorrect. Note that, the judging data is far difficult than the sample.
- Presentation Error: Your output format is not exactly the same as the sample output. Check your output for spaces and blank lines.
- Accepted: Your program is correct and has passed the test.
Q Why did my C / C++ problem get a Compile Error?
A The judger use GCC / G++ complier, that may be different from VC++, for example:
- The main function must be declared as int, and you must return 0 at the end of main function, and void main will end up with a Compile Error.
- The function itoa is not in ANSI Standard, so you need to use other solution.
- The 64-bit integer __int64 is not in ANSI Standard, you can use long long instead. Because we use Windows operation system, you should use "%I64d" instead of "%lld", if you use scanf and printf.
Q How can I read input data until the end?
A If you meet a problem doesn't give the number of case, You can do it like this:
To read numbers
C
int n; while(scanf("%d", &n) != EOF) { //Do Something }
C++
int n; while (cin >> n) { //Do Something }
Java
Scanner in = new Scanner(System.in); while (in.hasNextInt()){ int n = in.nextInt(); //Do Something }
To read characters
C
char w; while ((w = getchar()) != EOF) { //Do Something }
C++
char w; while (cin.get(w)) { //Do Something }
Java
Scanner in = new Scanner(System.in); while (in.hasNext()){ string w = in.next(); //Do Something }
To read lines
C
char l[1024]; while(gets(l)) { //Do Something }
C++
string l; while (getline(cin, l)) { //Do Something }
Java
Scanner in = new Scanner(System.in); while (in.hasNextLine()){ string l = in.nextLine(); //Do Something }
Q What is the maximum size of program that can be submitted?
A The maximal size of program is 32767 bytes (32KB).