F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

Frequently Asked Questions

賀心嶄猟井諒籾嚥盾基
Q What does "HDOJ" stand for ?
A HDOJ is short for Hangzhou Dianzi University Online Judge which was founded in September 2005 and has the lastest version of 3.0.
Q Which programming languages can I use at Online Judge ?
A C, C++, Pascal and Java are currently supported at Online Judge.
Q How to write a solution using my favourite programming language ?
Q Is there any way to determine if my program is runned at Online Judge or not ?
A There is a conditional define of compiler called ONLINE_JUDGE. Example of using:

C/C++
#ifdef ONLINE_JUDGE
    running on online judge
#endif
Pascal
{$IFDEF ONLINE_JUDGE}
    running on online judge
{$ENDIF}
Q What kind of input and output can I use at Online Judge ?
A Only stdin (standard input) and stdout (standard output) can be used. For instance, you can use scanf in C or cin in C++ to read, and printf in C or cout in C++ to write. Your programs are NOT allowed to open and read from / write to files. You will probably get a Runtime Error or Wrong Answer if you try to do so.
Besides, you should note that, in most cases, C runtime I/O functions are more effective than those of C++'s, so scanf and printf is recommended to process huge input or output.
Q What are the meanings of the judge's replies
A Here is a list of the Judge's replies and their meaning:

  • Queuing: The judge is so busy that it can't judge your solution at the moment. Usually you just need to wait a while because our judge server is powered by IBM and Intel Xeon :-)
  • Compiling : Your solution is being compiled to binary form by specified compiler.
  • Running : Your program is running on the server and fed with input data if necessary.
  • Accepted (AC) : Yes, your program is correct. You did a good job!
  • Presentation Error (PE) : Your program's output format is not exactly the same as required by the problem, although the output is correct. This usually means the existence of omitted or extra blank characters (white spaces, tab characters and/or new line characters) between any two non-blank characters, and/or blank lines (a line consisting of only blank characters) between any two non-blank lines. Trailing blank characters at the end of each line and trailing blank lines at the of output are not considered format errors. Check the output for spaces, blank lines, etc. against the problem's output specification.
  • Wrong Answer (WA) : Correct solution not reached for the inputs. The inputs and outputs that we use to test the programs are not public (it is recomendable to get accustomed to a true contest dynamic :-)
  • Runtime Error (RE) : Your program failed during the execution and you will receive the hints for the reasons. Here are part of the hints and their meanings.
    • ACCESS_VIOLATION Your program tried to read from or write to a address for which it does not have the appropriate access.
    • ARRAY_BOUNDS_EXCEEDED Your program tried to access an array element that is out of bounds and the underlying hardware supports bounds checking.
    • FLOAT_DENORMAL_OPERAND One of the operands in a floating-point operation is denormal. A denormal value is one that is too small to represent as a standard floating-point value.
    • FLOAT_DIVIDE_BY_ZERO The thread tried to divide a floating-point value by a floating-point divisor of zero.
    • FLOAT_OVERFLOW The exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type.
    • FLOAT_UNDERFLOW The exponent of a floating-point operation is less than the magnitude allowed by the corresponding type.
    • INTEGER_DIVIDE_BY_ZERO Your program tried to divide an integer value by an integer divisor of zero.
    • INTEGER_OVERFLOW The result of an integer operation caused a carry out of the most significant bit of the result.
    • STACK_OVERFLOW Your program used up its stack.
    • ...... Other runtime errors.
  • Time Limit Exceeded (TLE) : Your program tried to run during too much time.
  • Memory Limit Exceeded (MLE) : Your program tried to use more memory than the judge default settings.
  • Output Limit Exceeded (OLE) : Your program tried to write too much information. This usually occurs if it goes into a infinite loop.
  • Compilation Error (CE) : The compiler fails to compile your program. Warning messages are not considered errors. Click on the judge's reply to see the warning and error messages produced by the compiler.
  • System Error: The judge cannot run your program. One example is that your program requires much more memory than hardware limitation.
  • Out Of Contest Time : This message can only appear during a contest, if a program is submitted out of contest time.
Q What does "Special Judge" mean ?
A When a problem has multiple acceptable answers, a special judge program is needed. The special judge program uses the input data and some other information to check your program's output and returns the result to the judge.
Q My program got an AC in C++ while TLE in G++ !
A This mostly occurs in the case that your program have to process huge input. As we known, MS-VC++ is more effective to process I/O althrough we have tried our best to reduce the difference. This can hardly occur because we have tested most of the test cases in both C++ and G++ before we publish a problem on condition that you solve the problem with correct algorithms.
Q I'm sure that my program is incorrect but I still got an AC !
A Maybe our test cases are not strong enough to catch the bugs in your program. Please let us know.
Q How can I participate in online contests ?
A There are two kinds of online contests at HDOJ. One is public and the other is private. Everyone who has an account of HDOJ can participate in a public contest, but only specified ones who had been invited to the contests can take part in a private one.
To participate in the public contests, you should register an account first if you don't own one, then use your account and password to log in the contest.
To participate private ones, your should use the id and password supplied by the organizer for login.
Q Can I arrange a contest at HDOJ ?
A If you want to arrange a programming contest, and you don't have enough equipments or time to setup an automated judge, HDOJ will be pleased to host the contest for you.
What you need to setup your own contest are:
  • A problem set with test cases.
  • The list of the teams who will participate in the Contest. This can be omitted if the contest is a public one but necessary for a private one.
  • The date for the contest (GMT+8).
Send the stuff above to lcy@hdu.edu.cn by email and wait for our reply. If your apply is accepted, your contest will be arranged in HDOJ's contests schedule.
Q How to use 64-bit integer types ?
A Server supports signed and unsigned 64-bit integers.
  • Signed 64-bit integer. Value range: -9223372036854775808 .. 9223372036854775807.
    Language GCC/G++ Pascal C/C++
    Type name __int64
    or
    long long
    int64 __int64
    Input scanf("%I64d", &x);
    or
    cin >> x;
    read(x); scanf("%I64d", &x);
    Output printf("%I64d", x); cout << x; write(x); printf("%I64d", x);
  • Unsigned 64-bit integer. Value range: 0 .. 18446744073709551615.
    Language GCC/G++ Pascal C/C++
    Type name unsigned __int64
    or
    unsigned long long
    qword unsigned __int64
    Input scanf("%I64u", &x);
    or
    cin >> x;
    read(x); scanf("%I64u", &x);
    Output printf("%I64u", x);
    or cout << x;
    write(x); printf("%I64u", x);
Q How can I read input data until the end of file ?
A You can do it for example like this:
Language C C++ Pascal
To read numbers int n;
while(scanf("%d", &n) != EOF)
{
  ...
}
int n;
while (cin >> n)
{
  ...
}
var n: integer;
...
while not seekeof do
begin
  read(n);
  ...
end;
To read characters int c;
while ((c = getchar()) != EOF)
{
  ...
}
char c;
while (cin.get(c))
{
  ...
}
var c: char;
...
while not eof do
begin
  read(c);
  ...
end;
To read lines char line[1024];
while(gets(line))
{
  ...
}
string line;
while (getline(cin, line))
{
  ...
}
var line: string;
...
while not eof do
begin
  readln(line);
  ...
end;
Q What is the maximal size of program that can be submitted ?
A The maximal size of program is 65535 characters.

This page was generated by web cache at 2010-08-08 10:49:48
 

Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 0, Server time : 2024-04-25 19:34:12, Gzip enabled