imachug's blog

By imachug, history, 2 months ago, In English

I'm interested in non-classic problems here on Codeforces, so I've looked through the problems with special tag. The ones with non-standard format are:

  1. Problems that can only be solved in a single special language, such as Q# or a secret language. Example: a single problem 409B - Mysterious Language or the whole Kotlin Heroes 5: ICPC Round contest.
  2. Problems with a stateful checker, which detects how many submissions one has made. Example: 409H - A + B Strikes Back.

I also vaguely remember a problem where one had to output his username with some limitations on the source code, but it could be just a comment on a blog.

Anyway, I can't find out how to create any similar problem on Polygon. Obviously there's a whitelist of supported languages, but what about allowing the user to add an interpreter for the language in C? Or allowing the checker to read the original code, not its output? I'm interested how this is implemented for the official contests and if I can do that in a gym.

As for the second type, it'd be useful if the checker could get meta-information such as the user handle or ID, and access a local DB or use network as a state store. I couldn't find any sane documentation so I'm asking here.

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

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by imachug (previous revision, new revision, compare).

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by imachug (previous revision, new revision, compare).

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by imachug (previous revision, new revision, compare).

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Perhaps I should ping Nickolas who makes the April Fools & Q# rounds.

»
7 weeks ago, # |
  Vote: I like it +37 Vote: I do not like it

Creating special problems requires a lot of behind-the-scenes magic, so it's not available from Polygon (and that's why there's no documentation for it, sane or otherwise :-)). Most such problems look perfectly normal in Polygon, and there is some setting (not visible to the problem writer) that specifies the only language that can be used in a problem (which has to be added to the image deployed to testing servers beforehand — another thing you can't do from Polygon), or that the submissions need to be counted before testing them, or that results of submissions judging don't need to be cached, or any number of special behaviors.

Whenever I want to create a special problem for a special contest, I just ask Mike Mirzayanov, and he works the appropriate magic :-)