OmarAfterMidnight's blog

By OmarAfterMidnight, history, 2 weeks ago, In English

Hi Codeforces,

AdhamAfterMidnight and I have added Session 4 : Number Theory to Focused CPCs Training.

There are 56 problems, divided into five consecutive parts:

Part Problems Topics
1 01–12 Divisibility, remainders and modular arithmetic
2 13–23 Primes, sieves, factorization and divisors
3 24–36 GCD, LCM and coprimality
4 37–49 Arithmetic counting, totient, Möbius and divisor transforms
5 50–56 Digit number theory and integer equations

Each part is ordered independently by estimated difficulty, from easier to harder. The difficulty resets when the next part begins. You can work through the collection in order or start with whichever topic you need.

For those who missed the previous post, the group collects problems from different CPC contests and organises them into topic-focused practice sessions.

We use the VoidHub CPC Archive to put these collections together. The archive contains the original contest collections; the group brings selected problems together by topic.

The archive covers ECPC, ACPC, Syrian CPCs, JCPC, KCPC and TCPC, as well as CERC, NWERC, SEERC, GCPC, BAPC, NCPC, UKIEPC, Ural, Dhaka, Jakarta, Azerbaijan and the North America Championship.

It also includes local and university contests from Damascus University, Aleppo, Al-Baath and Homs. Not every source appears in every session, and more sessions will follow.

Every statement begins with “Originally from: [contest name]”. These aren't our problems; all credit goes to the original authors.

Screen

The earlier sessions are still available:

  • Session 1: Basics
  • Session 2: Adhocs
  • Session 3: Binary Search on Answer

The group is private for now. Send a join request and I'll accept it.

Group link · Session 4

Corrections to statements, feedback on the ordering, and suggestions for future topics are welcome.

Full text and comments »

By OmarAfterMidnight, history, 3 weeks ago, In English

Hi Codeforces,

I've been working with AdhamAfterMidnight on a training group called Focused CPCs Training, and we've just added our third session: Binary Search on Answer.

The idea behind the group is to collect problems on a particular topic from different CPC contests, then arrange them by estimated difficulty. We wanted something we could use for our own training, and thought others might find it useful too.

So far, we have:

  • Session 1 : Basics
  • Session 2 : Adhocs
  • Session 3 : Binary Search on Answer: 21 problems, specifically about binary searching the answer rather than ordinary binary search.

We're using the VoidHub CPC Archive to put these sessions together. The original contest collections are available there, while the group brings selected problems together by topic.

The archive includes contests such as ECPC, ACPC, Syrian CPCs, JCPC, KCPC and TCPC, alongside CERC, NWERC, SEERC, GCPC, BAPC, NCPC, UKIEPC, Ural, Dhaka, Jakarta, Azerbaijan and the North America Championship. Not all of these are represented in the group yet; we'll keep adding more sessions.

Each statement starts with “Originally from: [contest name]”, so the source is easy to find. These aren't our problems; credit goes to their original authors.

The group is private for now. Send a join request and I'll accept it.

Here's the group link. Give the sessions a try, and let us know if you find an issue or have a topic you'd like us to cover next.

Full text and comments »

By OmarAfterMidnight, history, 2 months ago, In English

Hi Codeforces!

A small update to our previous posts about VoidHub.

I, together with AdhamAfterMidnight, have added a new problem source to the platform: VH (VoidHub).

Full text and comments »

  • Vote: I like it
  • +3
  • Vote: I do not like it

By OmarAfterMidnight, history, 3 months ago, In English

Hi Codeforces!

About seven weeks ago, AdhamAfterMidnight and I shared VoidHub, a project we started while preparing for the ECPC.

The main idea was simple: make regular practice feel less repetitive. Invite a friend, enter a live 1v1 room, solve under a timer, and let the original judge decide the result.

Since that post, we kept building, testing, and fixing plenty of details. This is a small update about what has changed.

Full text and comments »

By OmarAfterMidnight, history, 4 months ago, In English

Hi Codeforces!

I am OmarAfterMidnight, and together with AdhamAfterMidnight we have been working on a project called VoidHub.

During our preparation for the ECPC, AdhamAfterMidnight and I were looking for a way to make practicing more exciting. We wanted something that would push us to solve more problems under real contest pressure while competing directly against each other.

That is when we came up with the idea of building a platform for 1v1 programming battles using problems from Codeforces, Online Judge, and HackerRank.

This experience genuinely brought back my motivation for competitive programming while helping us prepare for the ECPC in a much more enjoyable and competitive way.

Today, I am happy to finally share the result: VoidHub.

Website: https://voidhub.co

What is VoidHub?

VoidHub is a real-time duel platform for competitive programming.

You invite a friend, choose a mode, set the difficulty range, pick a source, and play inside a shared match room with:

  • a live timer
  • prepared problem statements
  • submissions tracking
  • penalties
  • match results
  • profile stats
  • ranked and unranked rooms

Compete page

Codeforces problems are submitted to Codeforces

This is probably the most important part.

If the room uses Codeforces problems, your solution is submitted through your linked Codeforces account. So if you get Accepted, it also appears normally in your Codeforces submissions/profile.

VoidHub is not trying to replace Codeforces. It is more like a duel layer around the original judge.

You still solve real problems, with real verdicts, from the original source.

Match rooms

Inside a room, both players see the same problems and the same timer. The scoreboard updates while the match is running, so you can see who solved what, who is submitting, and how penalties are building up.

Match room

Current modes:

  • BO3: first to solve 2 problems wins.
  • BO5: first to solve 3 problems wins.
  • Blitz: short-statement Codeforces problems in a fixed 30-minute race.
  • Pick & Play: both players pick topics, and the system builds the problem set around them.

Compiler panel

The room has a compiler/submission panel at the bottom. You choose a language, write or upload your code, and submit from the room.

Compiler

For Codeforces, the language list is fetched from the linked Codeforces session, so it matches the account setup.

Problem sources

VoidHub currently supports:

  • Codeforces
  • HackerRank
  • Online Judge
  • Auto Mix

problems_cnt

We also keep metadata such as time limit, memory limit, statement formatting, examples, and source information to prepare rooms faster.

Problem library

Profiles

Profiles show rating, match count, wins, losses, solved count, recent submissions, friends, and match history.

Profile

Dark

Profile1

Ranked rooms affect rating. Unranked rooms are still recorded in general match stats, but do not affect rating.

Safety notes

A few important points:

  • VoidHub does not ask for your Codeforces password.
  • Linked judge access is used for things like fetching languages and submitting when you press Submit.
  • You can unlink accounts from settings.
  • Room results are based on real judge verdicts, not fake local results.
  • Privacy settings exist for profile information like email, friends, birth date, and submissions.

Why we are sharing it here

We built VoidHub mainly for people who enjoy practicing with friends.

There are still things we want to improve, and feedback from Codeforces users would be really valuable, especially about:

  • match formats
  • rating logic
  • problem selection
  • UI/UX
  • fairness rules
  • anything that feels annoying during a real duel

You can try it here:

https://voidhub.co

Thanks for reading. Any feedback, bug reports, or ideas are welcome.

Full text and comments »

  • Vote: I like it
  • +11
  • Vote: I do not like it

By OmarAfterMidnight, history, 8 months ago, In English

I’m not an expert in number theory,

but I was tired of feeling lost.

For a long time, I felt like I was studying in a very random way.

I would learn an idea, solve a few problems, then move on. After a while, I’d forget most of it.

So I decided to try something simple.

Instead of solving randomly, I started grouping problems by topic. Nothing fancy, just trying to build some structure.


For example, I made small sets around:

  • Segmented Sieve
  • Prime Factorization & Divisors
  • Miller-Rabin & Pollard Rho
  • Arithmetic on Graphs
  • Some basic DP when needed

The goal is not to solve as many problems as possible. The goal is to understand the idea well enough so I don’t feel lost when I see it again.

Right now, I have a set where I solved 22 out of 26 problems, and I’m still stuck on some of them.

But honestly, this way feels much better than random practice.

I’m still learning, and I’m still adding more problems over time.

If you’re also struggling with number theory, maybe the problem isn’t difficulty, maybe it’s just the lack of structure.


I’m putting everything here, and I’ll keep updating it:

https://codeforces.me/group/abU6lmt4Ia/contests

If you have suggestions for good problems or topics I should add, I’d really appreciate it.

Full text and comments »

  • Vote: I like it
  • -8
  • Vote: I do not like it