A2OJ Code Battle is Egypt’s first programming competition, designed for Egyptian coders who have a passion for programming and a willingness to prove they’re the best.

It will allow you to use your programming skills in solving algorithmic problems in a competitive atmosphere. The two online rounds will be followed by the on-site Semi-Final and Final Rounds, where the winners will be crowned.

You will have the opportunity to connect with the biggest tech companies in the game

Competition is an engaging, challenging and rewarding way to show off your programming and problem-solving skills

You’ll have the freedom to pursue your passion in a fun, game-based environment and connect with other passionate coders just like you

Sign up for the challenge using your updated WUZZUF profile and answer the questions

Wait for the confirmation Email where you will receive an invitation to Sign up for A2OJ platform to be ready for the challenge when it begins and to join the A2OJ Code Battle community group where you can communicate with other coders

Onsite Rounds

Registration

Online Rounds

The Semi Final Each group of semi-finalists will solve four problems over the course of two hours in a competition site in Cairo, Alexandria and Upper Egypt. The top 25 from Cairo, the top 15 from Alexandria and the top 10 from Upper Egypt will qualify for the final.

The Final The finalists will solve four problems over the course of three hours in a competition site in Cairo. The winners will be crowned at the Cairo Tech Summit, where they will be invited to mingle with developers, engineers, managers and CEOs from the top tech companies in Egypt.

Round One This is the qualification round. The contestants who register on WUZZUF are given to solve four problems online over the course of 24 hours. The top 500 contestants will go to the next round in addition to anyone who solves the same number of problems as the 500th contestant.

Round Two Contestants will be divided over three online versions of the competition: One for Cairo, one for Alexandria and one for Upper Egypt. Each group will solve four problems online over the course of two hours. The top 75 from Cairo, the top 45 from Alexandria and the top 30 from Upper Egypt will qualify for a separate semi-final.

No age restriction. The first round will be suitable for anyone who can code, the second round will be a bit harder but some beginners can still pass it. Overall, each round will be harder than the previous one.

Scoring and cheat checking

Participants

The competition will take place on the A2OJ platform, where Ahmed Aly crafts the programming puzzles himself.

Semi Final

Cairo region, the top 25 contestants will be qualified to the final.

Alexandria region, the top 15 contestants will be qualified to the final.

Upper Egypt region, the top 10 contestants will be qualified to the final.

All Languages

Challenge Rules

C (gcc 4.3.2)

C++ (g++ 4.3.2)/ C++ (g++ 4.0.0-8)

Java (JavaSE 6)

Python 3 (python 3.1.2)

C# (gmcs 2.0.1)

Ruby (ruby 1.9.0)

Go (gc 2010-07-14)

Python (python 2.7)

C99 strict (gcc 4.3.2)

F# (fsharp 2.0.0)

Perl (perl 5.12.1)

Fortran 95 (gfortran 4.3.2)

Common Lisp (sbcl 1.0.18)

Common Lisp (clisp 2.44.1)

Scheme (stalin 0.11)

Pike (pike 7.6.112)

D (gdc 4.1.3)

Haskell (ghc 6.10.4)

Pascal (fpc 2.2.4)

Smalltalk (gst 3.0.3)

JAR (JavaSE 6)

Nice (nicec 0.9.6)

Lua (luac 5.1.3)

Bash (bash 4.0.37)

Nemerle (ncc 0.9.3)

Awk (gawk-3.1.6)

Clojure (clojure 1.1.0)

ADA 95 (gnat 4.3.2)

Whitespace (wspace 0.3)

Round One

The top 500 contestants will go to the next round.

If less than 500 contestants solved one question or more, then everyone who solved at least one question will be qualified to the next round.

If the contestant at the 500th place solved at least one question, then everyone who solved the same number of questions will be qualified to the next round.

Ocaml (ocamlopt 3.10.2)

Intercal (ick 0.28-4)

Brainf**k (bff 1.0.3.1)

Assembler (nasm 2.03.01)

Clips (clips 6.24)

Icon (iconc 9.4.3)

Perl 6 (rakudo-2010.08)

Node.js (0.8.11)

Scheme (guile 1.8.5)

Erlang (erl 5.6.3)

PHP+SQLITE (php 5.2.6)

Tcl (tclsh 8.5.3)

Scala (scala 2.8.0)

SQL (sqlite3-3.7.3)

Winning Criteria

Awards

A problem statement that explains the problem you are required to solve.

The input format which explains what form the expected input should take.

The sample input which will provide a sample you can use to test your program.

The output format which explains the form the expected output should take.

The sample output which will demonstrate the expected output for the sample input.

Additional notes that could provide further explanation of the problem.

Contestants are sorted based on the number of problems they solve. In case of a tie, the contestant with the smallest time penalty will get the higher rank. The time penalty represents the amount of time you take to correctly solve each problem, in addition to 20 minutes for each wrong submission.

For example, if a contestant solves problem A in 10 minutes, makes a wrong submission in problem B, solves problem B in 50 minutes and then makes a wrong submission in problem C, the time penalty will be calculated by adding 10 to 20 and 50. Note that the wrong submission in C won’t add any penalty since they didn’t solve it. Wrong submissions only add to the penalty when the contestant solves that problem.

A2OJ uses a complex cheat checking algorithm that detects similar source codes submitted by different users. It is not allowed for contestants to use similar codes. If this happens in the qualification round, a warning will be sent. If it happens in any other round, they will be completely disqualified and will not be eligible to win competition prizes. However, in such a case they will have 48 hours to appeal.

Accepted: Your solution solved all test cases correctly.

Compilation Error: Your source code didn’t compile.

Runtime Error: Your program crashed while trying to solve the test cases.

Time Limit Exceeded: Your program didn’t solve all test cases within the given time limit.

Memory Limit Exceeded: Your program used more than the memory allowed.

Wrong Answer: Your solution printed a wrong result for at least one test case.

All problems will be posted on the A2OJ website. There is a submit button in each problem's page that will take you to another page where you will type in your source code, select its programming language and submit it.

Your solution will be judged automatically in a couple of minutes. These are the possible judgments:

Round Two

The top 75 from Cairo, the top 45 from Alexandria and the top 30 from Upper Egypt will qualify for a separate semi-final.

This will be the first round where the time penalty will make a difference when people are tied in the same number of solved questions, the faster to solve them will get the higher rank.

Submissions

Final

Top 5 contestants.

Top contestant from each region who isn’t in the top 5.

Top 3 female contestants who are not in the top 5.

Top 3 young contestants (born in the year 2000 or after that) who are not in the top 5.

Your source codes will be stored in A2OJ’s database and will be shared with WUZZUF and Platinum Sponsors.

All contestants who qualify for the semi-final will be awarded a special WUZZUF Badge that will appear on their WUZZUF profiles and help make them stand out to employers on WUZZUF.

All contestants who qualify for the semi-final will be awarded special gifts from WUZZUF and A2OJ.

All contestants who qualify for Round Two will receive an e-certificate.

First Place will receive a Lenovo laptop.

Second to Fifth place will receive a smartphone.

All winners from the final round will be crowned at the Cairo Tech Summit, where they will be invited to mingle with developers, engineers, managers and CEOs from the top tech companies in Egypt.

Whether the code is clean or not will not be factored in the judgment. However, what will be factored is correctness and efficiency. If a solution satisfies all the following conditions, the contestant will get score a score of 1, otherwise, the contestants will get 0: