Post-Training Language Models for Gold-Medal Performance in Coding Competitions
Aleksander Ficek, Sean Narenthiran, Mehrzad Samadi, Somshubra Majumdar, Boris Ginsburg
cs.LG, cs.AI, cs.CL, cs.MA, cs.SE
2026-09-03
NVIDIA post-trains Nemotron-3 on 22k problems plus GenCorrect. Nano-CC goes 130 to 468 on IOI 2025; live Ultra-CC scores 535.4/600 at IOI 2026, above the top human 498.27.
Competitive programming is a hard test of LLM reasoning, and IOI and ICPC sit at the top of that ladder. Several systems have posted gold-medal scores, but data, post-training, scale, and test-time compute are usually tangled. NVIDIA unbundles the stack: 22,000 curated problems, synthetic traces, supervised fine-tuning, execution-reward RL, and GenCorrect, an iterative refine loop driven by evaluator feedback. The same recipe then ran live at IOI 2026 under the contest's time, no-internet, and submission rules.
Problems come from 16 contest families over two decades plus online judges, packed into executable harnesses. IOI 2025, ICPC 2025, and LiveCodeBench Pro are excluded and deduplicated. DeepSeek-V4-Flash writes 1.2 million traces for Nano and 477,642 for Ultra, with extra samples on hard items and self-improvement traces that mimic later correction.
Nemotron-3-Nano-CC is a 30B-A3B MoE: three SFT epochs, then GRPO on 3,219 executable problems, 64 prompts times 16 rollouts per step, C++17 compile-and-run, reward 1 only for full credit, no KL penalty. Nemotron-3-Ultra-CC is 550B-A55B, one SFT epoch, no code RL, because that scale did not fit the budget.
GenCorrect runs up to five rounds. Each round samples up to 200 solutions, picks 10 by token-shingle diversity, submits them, and feeds subtask scores plus three references into the next round. Fifty official IOI submissions map onto five rounds of ten. The live system switches the teacher to GLM-5.2, expands the last round to 1,000 candidates with execution-based selection on model-written tests, and serves NVFP4 on a peak of 760 GB300 GPUs.
IOI 2025 is out of 600; gold sat at 438.3:
| System | Score@1 | Score@200 / GenCorrect |
| Nano base | 130 | 272 |
| Nano-CC | 291 | 461 / 468 after five rounds |
| Ultra base | 273 | 436 |
| Ultra-CC | 304 | 505 / 502 after five rounds |
SFT does most of the single-sample work. After three epochs Nano moves IOI from 130 to 280, LCB Pro Pass@1 from 17.6% to 70.7%, and ICPC from 16.9% to about 47%. RL then takes IOI to 291 (48.5%), ICPC to 51.0%, LCB Pro to 71.6%. RL from the base checkpoint only reaches 24.9% IOI, so it does not replace SFT. On ICPC, five GenCorrect rounds take Nano from 8.6 to 9.4 problems (gold was 9) and Ultra from 9.0 to 9.6, plateauing after round two.
At IOI 2026 the competition Ultra-CC scored 535.4/600 against a gold line of 361.12 and a top human of 498.27. A post-hoc five-round GenCorrect rerun averages 521.72 (range 495.0-545.8). The run was unofficial and unsupervised; the score is not on the official board.
A 3B-active Nano-CC already clears IOI 2025 gold once test-time compute and evaluator feedback are in the loop. Gold is now mostly systems work: data, teacher distillation, submission budget, and a closed execution loop outweigh another RL stage. 535.4 is, on the paper's claim, the first public IOI result above the top human. The bill is explicit: 760 GB300s at peak. The comparison matches contest rules, not compute.
The authors say the live score is a same-rules systems comparison, not an equal-resource match against contestants. Ultra never got code RL, and scale-by-stage ablations are incomplete. The full problem corpus cannot be released. NVFP4 drops IOI 2025 Score@1 from 59.4% to 52.8% for a 3.7x throughput gain, so the live number includes a quantization tax. The 2026 gold line (361) is far below 2025 (438), which means a harder human field, but the top human still scored 498; the model beat that by 37 points. Nothing here speaks to domains outside competitive programming.