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).