How To - Rules and Guidelines

What is Koduesi?

Koduesi is an algorithm programming competition platform where you can practice and compete in coding challenges.

Register

In order to compete, you need to register for a Koduesi account.
You can register with a local account or register using another service like:

  • Facebook
  • Google
  • Microsoft
  • Twitter

Practice

To practice our coding problems go to the practice section. In this section you can view and practice problems intended for practice and problems from past contests.

Compete

To compete in a contest, you need to login during an active contest.
Go to the contest section and select the active contest. After selecting the contest you will enter the Contest Arena.

Programming Languages

Currently we support multiple programming languages. All compilers run under Linux Ubuntu server.
Here is a list of supported languages and compilers used to compile solutions:

Language Compiler Command Version
Pascal fpc 2.4.4-3.1
C gcc 4.6.3
C++ g++ 4.6.3
Java javac 1.7.0_25
Python python 2.7.3
PHP php 2.3.0
Perl perl 5.14.2
C# mcs 2.10.8.1
Python3 python3.5 3.5.2

Common Problems

C++

The compiler that is used is different than the one used in Dev-C++ or Codeblocks in Windows environment. If you are able, use a GNU Linux environment.

JAVA

All solutions must have a static main method in a Main class. You can have more classes but you must have one public class named "Main", otherwise the solution will have a Compile error.

C#

The compiler is not Microsoft C#.NET, but Mono. Make sure you read the documentation about some parts in the compiler or the framework that may be missing. Dynamic structures, lambda expressions and other C# modern functionalities are generally supported, but try to avoid them and be careful while using them.

Solution Status

Here is a list of solution status types and their meaning:

Pending
The judge is busy and can't judge your submission at the moment. Usually you just need to wait a minute and your submission will be judged.
Rejudging
The test data has been updated, and the submission will be judged again.
Assign to judge
The solution has just started to be judged by one of the judges.
Compiling
The judge is compiling your source code.
Running judging
Your code is running and being judged.
Accepted
OK! Your program is correct!
Presentation error
Your output format is not exactly the same as the judge's output, although your answer to the problem is correct. Check your output for spaces, blank lines, etc against the problem output specification.
Wrong answer
Correct solution not reached for the inputs. The inputs and outputs that we use to test the programs are not public (it is recommendable to get accustomed to a true contest dynamic).
Time limit
Your program has exceeded the time limit of the problem.
Memory limit
Your program tried to use more memory than the judge default settings.
Output limit
Your program tried to write too much information. This usually occurs if it goes into an infinite loop. Currently the output limit is 2MB.
Runtime error
During the running time of the solution an error has occurred. Click the status link to see the actual error message.
Compile error
The compiler (gcc, g++, javac, etc) could not compile your solution. Click the status link to see the actual error message.

Rating Calculation

The calculation of user rating is done by summing the levels of problems that the user has solved. If the rating is the same, the user with fewer submissions will have a better ranking.

Contest Ranking

The ranking in a contest is done as follows:

  • The user who has more solved problems is ranked higher.
  • If users have the same number of solved problems then the ranking is done by time. Time is the sum of times of solved problems and the sum of penalty time.
  • If users have the same number of solved problems and same time, ranking is done by count of wrong submissions. The user with fewer wrong submissions is ranked higher.
Penalty time: For every wrong submission, the user gets a time penalty of 5 minutes. The penalty for a particular problem is added to total time if the user has solved that problem.

Example Solution

Problem: Sum of numbers
Solution in C language
#include <stdio.h> int main(){ int test; scanf("%d",&test); int a,b; for(int k = 0; k < test; k++){ scanf("%d %d",&a, &b); printf("%d\n",a+b); } return 0; }
Solution in C++ language
#include <iostream> using namespace std; int main(){ int test; cin>>test; int a,b; for(int k = 0; k < test; k++){ cin >> a >> b; cout << a+b << endl; } return 0; }
Solution in Pascal language
program p1000(Input,Output); var a,b,test,k:longint; begin Readln(test); for k := 1 to test do begin Readln(a,b); Writeln(a+b); end; end.
Solution in Java language
import java.util.*; public class Main{ public static void main(String args[]){ Scanner cin = new Scanner(System.in); int a, b, test; test = Integer.parseInt(cin.nextLine()); for(int k = 0; k < test; k++){ a = cin.nextInt(); b = cin.nextInt(); System.out.println(a + b); } } }
Solution in C# language
using System; public class Sum { public static void Main() { string token = Console.ReadLine(); int test = int.Parse(token); for(int k = 0; k < test;k++){ string[] tokens = Console.ReadLine().Split(' '); Console.WriteLine(int.Parse(tokens[0]) + int.Parse(tokens[1])); } } }
Solution in Python language
import sys test = int(sys.stdin.readline()) for x in range(0, test): line = sys.stdin.readline() a = line.split() print (int(a[0]) + int(a[1]))
Solution in PHP language
<?php fscanf(STDIN, "%d\n", $number); for($k=0; $k<$number;$k++) { fscanf(stdin, "%d %d\n" , $n1, $n2); echo ($n1+$n2)."\n"; } ?>
Solution in Perl language
#!/usr/bin/perl $test = <>; for($i=0;$i<$test;$i++) { $input= <>; my @num = split(' ', $input); $sum = $num[0] + $num[1]; print "$sum\n"; }

Reset Password

If you have trouble logging in, you can reset your password using your email on the reset password page.
If you are migrating from the old platform, on your first login you have to reset your password first.
If you still have trouble resetting your account password, write us an email at admin(at)koduesi.com.