﻿BNUEP Offline Judge

Supporting platforms: Windows 2000/XP, Windows VISTA, Windows 7, Windows 8/8.1. Must be run as ADMINSTRATOR.
This is green software, so there is no need to install it and it can be run after extracted. Since it is developed on the basis of .Net technology, please ensure that you have installed .Net Framework 2.x or 3.x if you run on Windows 2000/XP. Windows VISTA and Windows 7 can run directly. Windows 8/8.1 should enable the function of .Net Framework 3.5. For Windows 8/8.1, please install the function of .Net Framework 3.5 (including .Net 2.and 3.0) according to the instruction after running it.

Microsoft .NET Framework 2.0 Service Pack 2 download address:
http://www.microsoft.com/en-us/download/details.aspx?id=1639

Some versions of Windows will inform you to install Windows Installer 3.1 Redistributable before installing .NET Framework:
http://www.microsoft.com/en-us/download/details.aspx?id=25

Files Explanations:
BnuepOfflineJudge.exe - The main file of the program.
ICSharpCode.SharpZipLib.dll - The component invoked by the program.
Readme.zh-CN.txt - Simple Chinese help document.
Readme.txt - English help document.

Compilers Folder - The compilers invoked by the program. DO NOT modify and move it.
Samples Folder - Sample problems, Test Data and sample source.

Main Features:
1. Code can be judged without any Internet connection if Test Data is available of a problem.
2. Possessing of all functions of Online Judge, such as compiling code, limiting memory, limiting time and getting the code length.
3. Test Data can be delivered with encryption. Other people can use the encrypted data to judge problems without showing the standard output.
4. With the Build Mode, standard output can be generated by your sample source and standard input and it is available to save those in bulk.
5. C/C++, Pascal, C#, Java and Python are supported by the submission.
6. Chinese are supported in standard input, standard output and source code.
7. Infinity running is supported, and you can terminal it at any time.
8. Program output can still be generated even in the situation of MLE, RE, Skip, TLE, UserBreak.
9. Program output and standard output can be compared with highlight difference.

About Test Data:
1. The precondition of using this problem is to have the standard input and standard output of a problem. The extension of standard input is '.in' and the extension of standard output is '.out'.
2. For the same problem, the file name shall be the same except for the part of the extension name.
3. Supporting one problem with many cases of Test Data with following format, Test_01.in, Test_02.in, Test_03.in, Test_01.out, Test_02.out, Test_03.out.
4. Different problems' Test Data can be put into a same folder, and the program can identify them automatically.
5. Be careful that the Test Data must end with a line break, or it will get PE rather than AC.

Method to Obtain the Test Data:
The program supports two methods to obtain Test Data. One is Dictionary-Based, and the other is File-Based. You can select those two options by the Option menu.
Running Mode:
There are two running modes of the program. One is Judge Mode, and another is Build Mode. The later one can only use Dictionary-Based method to obtain the Test Data. You can choose those two options by Option menu

Steps of using Judge Mode:
1. Choose a dictionary including Test Data or an .ojd file (the special format of BNUEP Offline Judge) by pressing the Brower button. The usable available problems will be shown in the Program drop down list. Select the problem, language and memory limit, time limit and submit your code. It supports to submit code by drag and drop.
2. The code will be complied and run, using standard Input as input, and show the running result of the judge. The standard input and standard output will be placed in the text boxes on the two sides of the program. The information of the judge will be shown in the status bar of the window. Skip and Break button can be used to skip the current running case (multi-cases way) and break the running operation.
3. After running, Compare button can be clicked to compare the standard output and program output with highlight difference.
4. For a problem with many cases Test Data, you can use <, > button to see their information
5. Because of the difference of hardware and the kernel of the judge, difference may exist between the time for the software to run the program and that for the Online Judge to run; The difference fluctuates around±500MS. Besides, if your machine activates some monitoring function of the security software, time to judge will be lengthened.

Steps of using Build Mode: (only explain the difference between Judge Mode)
1. Can only run in Dictionary-Based. Standard input is the only data needed.
2. After running, Save Current Case's Output and Save All Case's Output in File menu can be used to store the program's output as standard output.

Steps of Packing Test Data:
1. Click File Menu - Pack Test Data.
2. Choose a path for file storing by Browse button; the requirements of the format of Test Data are the same as that of the Judge Mode. Click Search button, and the usable available problems will be shown in the list.
3. Choose whether to encrypt the Test Data.
4. Remark is the description of the Test Data, it will be useful in the further version.
5. Click Save button, done.

Judge Result:
Accepted - The solution has produced output that the program accepts as correct.
BuildModeResult - The result of the Build Mode ending normally
CompileError - The solution cannot be compiled into any program runnable by the program.
CompilerDamage - The compiler is unavailable
MemoryLimitExceeded - The solution has consumed more memory than permitted.
NotRun - The solution has not been run.
PresentationError - The solution has produced output that is correct in content but incorrect in format.
RE_AccessViolation - The solution has caused a forbidden access.
RE_DivisionByZero - The solution has caused a division by zero.
RE_StackOrHeapOverFlow - The solution has caused a stack or heap over flow.
RE_JavaRuntimeError - The solution has caused a runtime error in Java.
Skip - The user has skipped the Test Data.
SystemError - The program has failed to run the solution.
TestFilesDamage - The Test Data has been damaged.
TimeLimitExceeded - The solution has run for longer time than permitted.
UserBreak - The user has terminated the operations.
WrongAnswer - The solution has not produced the desired output.

Compilers Version:
gcc:
mingw-w32-bin_i686-mingw_20111101_sezero
With exception of certain parts that are prominently marked as being in the Public Domain, BSD, or LGPL this Software is provided under the Zope Public License (ZPL) Version 2.1.
Copyright (c) 2009, 2010 by the mingw-w64 project
See the AUTHORS file for the list of contributors to the mingw-w64 project.

fpc:
Free Pascal Compiler version 2.2.2 [2008/08/03] for i386
Copyright (c) 1993-2008 by Florian Klaempfl

csc:
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.1433
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

Changes:
[1.21] 16 Jan 2015 -------
Release internationally.

Program Author: Susu
www.linjialiang.net

If your want to support BNUEP Offline Judge, please find the following link for further information:
http://www.linjialiang.net/donate/

For BUGs or any comments, please feel free to contact linjialiang@vip.163.com. Many thanks!
