Almost all stuffs related to Schematics NPC 2021 and can be known by public.
Problemset for Schematics NPC 2021 is available on TLX
Round | Problemset Link |
---|---|
Preliminary Senior | Link |
Preliminary Junior | Link |
Final Senior | Link |
Final Junior | Link |
Round | Problemset Link |
---|---|
Preliminary Senior | Link |
Preliminary Junior | Link |
Final Senior | Link |
Final Junior | Link |
Web-based version can be accessed from Problemset
TBD
TBD
Name | Online Judge URL |
---|---|
Senior | Link |
Junior | Link |
Name | Link |
---|---|
Senior | Link |
Junior | Link |
Online judge is a platform to judge or grade contestant submission and rank them based on ICPC / IOI / other rules. In Schematics NPC 2021, we use ICPC-style scoring for senior category and IOI-style for junior category. These are online judge that we used:
Category | Online Judge |
---|---|
Senior | DOMJudge v7.3.3 |
Junior | DMOJ v2.1 |
DMOJ is amazing but there is no support for freezing scoreboard and clarifications system little bit confusing. Maybe Judgels can be a good alternative.
Online judge can't judge by itself. They use a program called judgehost / judgeserver to compile and score contestant submissions. For each online judge, we use default judgehost provided by online judge.
We can't use only 1 judgehost because it would be so slow to judge submission from ≥ 400 contestant. These are all judgehost we used for each online judge:
Online Judge | Judgehost |
---|---|
DOMJudge v7.3.3 | 9 (4 Standard_B2s Azure VM, 1 GCP Instance splitted to 5 daemons (6 GB memory, 2 vCPU)) |
DMOJ v2.1 | 6 (4 Standard_B1s Azure VM, 2 GCP Instance 2 GB memory, 2 vCPU) |
You can look at Azure VM specifications here
For senior category, we use resolver to display scoreboard activities during freeze period to contestant (This will bring ICPC World Final / Regional contest experience).
Repository URL: sch-npc-resolver
Schematics NPC 2021 was sponsored by Rumahweb and they send us VPS with 8 GB RAM (we don't know another specification).
We have public scoreboard that developed using Vue.js for front-end and Laravel for back-end. We need back-end although every online judge has its own API because back-end can minimize fetching frequency (1 minute fetch frequency and cached locally) so it wouldn't add major load to online judge compared to direct fetching from front-end.
All online judge and judgehosts were dockerized so we just need to install docker and download image in remote machine. Public scoreboard deployed in Vercel.