VoidHub Update: Relive CPC Contests as If You Were There

Правка en1, от OmarAfterMidnight, 2026-09-16 14:26:02

Hi Codeforces!

Another update to VoidHub.

I, together with AdhamAfterMidnight, have been working on something we wanted to add for a while:

Historical Virtual Contests.

But not the usual kind of virtual where you open an old contest, start a timer, and solve the same problems.

The idea is to make you feel like you were actually there on contest day.

What does that mean?

Suppose you want to virtual an old ECPC Qualification Day.

You don't just get the problems and a 5-hour timer.

VoidHub reconstructs the contest around you using the original contest data.

So while you're competing, you are placed inside the same timeline as the teams that actually participated that day.

You can see the standings evolve around you, compete against the original teams, and eventually answer a question we've always found interesting:

"What would have happened if my team had actually competed on this day?"

VoidHub Virtual Contest standings

The original contest around you

The virtual includes things such as:

  • the original contest duration
  • the original teams
  • accepted submissions happening at their original times
  • penalties and solved counts
  • First to Solve
  • the Blind Hour / scoreboard freeze
  • the final standings after the contest
  • university standings for qualification contests

Your own submissions are inserted into that timeline.

So if, for example, a real team solved Problem C at minute 73, that solve appears around the same point in your virtual contest.

And if you solve it at minute 61, you are actually ahead of them in the simulated standings.

You are not competing against a static final scoreboard.

The scoreboard is happening around you while you compete.

Live Virtual Contest standings with the real teams

You are basically joining the original contest

This is the main idea behind the feature.

We didn't want the virtual to feel like:

"Here are some old problems. Solve them and compare your result later."

Instead, we wanted it to feel more like:

"This contest already happened. Now let's insert your team into it."

The original teams are there.

Their solves happen according to the original contest timeline.

Their penalties are there.

Their standings positions change while you're solving.

And your team moves through the same scoreboard with them.

So for those few hours, the goal is to make it feel like your team was actually one of the teams competing that day.

First to Solve is possible too

This part was especially fun to build.

First to Solve is also reconstructed from the original contest.

So if the first accepted submission for a problem happened at minute 40 and you solve it at minute 32 during your virtual...

you get First to Solve in your virtual contest.

That means you're not only comparing the number of solved problems after the contest ends.

Your timing actually matters relative to what happened during the real contest.

First to Solve inside the Virtual Contest

The goal was to preserve the feeling of a real CPC scoreboard instead of simply comparing your result with a finished standings table.

What if I want to compete as another university?

For qualification contests, you can also join the virtual representing a university.

That means you can see both:

your position in the overall standings

and

your position among teams from that university.

So you can try things like:

"What if we competed in this ECPC Qualification Day as Cairo University?"

and see where your team would have finished compared with the teams that were actually there.

This was something we really wanted for qualification contests because sometimes your overall position doesn't tell the full story.

You may also want to know:

Would we have qualified from this university?

or

Where would we have ranked among its teams?

Now the virtual can show that directly.

The Blind Hour is there too

The scoreboard freeze is simulated as well.

During the Blind Hour, results are hidden just like they were during the original contest.

So toward the end of the virtual, you don't necessarily know your exact final position.

You finish the contest with the same kind of uncertainty you would normally have during a CPC contest.

Then, once the virtual finishes, the hidden results are revealed.

You get the final reconstructed standings with your team inserted into them.

So instead of finishing a virtual with only something like:

Solved: 7

Penalty: 834

you get something much more interesting:

where you would have actually finished on that contest day.

Why did we build this?

CPC contests have a lot more to them than just the problemset.

There are teams around you.

There is scoreboard pressure.

There is First to Solve.

There is your university ranking.

There is the Blind Hour.

And there is that final moment when the scoreboard gets revealed.

We wanted old contests to preserve a little more of that experience.

Of course, it can never perfectly recreate sitting inside the actual contest hall with your teammates.

But hopefully it gets a lot closer than simply starting a timer on an old problemset :)

We're gradually adding more historical CPC contests to the archive.

At the moment, we're focusing on CPC-style contests such as ECPC Qualification Days, and we'll keep expanding the archive over time.

You can try the new Virtual Contest system here:

https://voidhub.co

This is still a new feature, so if you find incorrect historical data, standings problems, bugs, or simply have an idea that would make the simulation better, please tell us.

Feedback is very welcome.

Thanks for reading!

Теги voidhub, ecpc, icpc, training

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en1 Английский OmarAfterMidnight 2026-09-16 14:26:02 6162 Initial revision (published)