Compiler settings

We use javac to compile your program with the following command:

$ javac -encoding UTF-8 -sourcepath {path} -cp {path}/* -d {path} {files}

  • {files} is a space-separated list of all files.

Runtime settings

We use java to run your program with the following command:

$ java -Dfile.encoding=UTF-8 -XX:+UseSerialGC -Xss64m -Xms{memlim}m -Xmx{memlim}m -cp {path}:{path}/* {mainclass}

  • {mainclass} is the class containing your main function.
  • {memlim} is the actual memory limit for the problem you are submitting to.

File Extensions

Files with any of the following file extensions will be used: .java


The mainclass is the class containing the entry point (main method) of your program. It is a method that looks like this:

public static void main(String[] args)

As you can submit multiple classes, there can potentially be multiple such methods. Therefore you need to specify which class contains the main method we should use. Note that the mainclass must contain the full name of the class. If you declare a package, it must be included (or we will not find your class). For example, if your class name is Solution and it is in package fuzzy your mainclass should be fuzzy.Solution.

Specifying the wrong mainclass will give you a Compile Error telling you what happened.