
The text contains only preliminary rules of Codeforces contests - something surely will change. In particular, I hope to help the community to find the illogic in the rules. However, I have already discussed the format with programming contests dinosaurs and made unrated alpha contests - it seems rules are OK.
I think than the format 5 tasks x 2 hour is quite good. For this reason, in the near future we will not change it, but of course, experiments are possible.
1. Before the competition all participants are divided into rooms, each room contains about 20 participants. For now random strategy works, but after a while it will be somehow correlated with the rating.
2. The start of contest looks quite like ICPC: all problems immediately available for viewing/solving, the statements are simple and understandable. Choose the problem and begin to solve it. I think the idea to order problems by difficulty is good. The aim of the participant is to earn as much scores as possible.
3. The cost of the problem can be determined by the following table. For example, if the problem B was solved after 10 minutes of contest, then it costs 1000 — 4 * 10 = 960 points. For each attempt there is penalty of 50 points. So, if the problem B was solved after 10 minutes from the beginning with the third attempt, the score for it is 1000 — 4 * 10 — 2 * 50 = 860 points. However, no matter how much attempts you did and when you solved the problem, the cost of the solution can not drop below 30% of points (see the column "Min. Score (30 %)").
Problem | Max. score | Min. score (30%) | Loss (points per minute) | Score at the contest end |
A<o:p></o:p> | 500<o:p></o:p> | 150 | 2 points | 260 |
B<o:p></o:p> | 1000<o:p></o:p> | 300<o:p></o:p> | 4 points | 520 |
С | 1500 | 450 | 6 points | 780 |
D<o:p></o:p> | 2000<o:p></o:p> | 600<o:p></o:p> | 8 points | 1040 |
E | 2500 | 750 | 10 points | 1300 |
4. And now comes the time when you solved the problem and submitted it. It will be checked only on preliminary testset (also we call such tests "pretests"). It is known that pretests do not check solution completely. Usually there are 2-10 pretests, and the fact that the solution passed pretests says only that it is quite reasonable. Typically pretests not contain the maximal tests, corner cases, etc.
5. Once your solution passed all the pretests, you'll get points for solved problem (see formula I described above). Also you now have an alternative - that is, if you are confident in the correctness of your solution, then you may want to lock this problem for yourself. If you have locked the problem, you will not be able to resubmit it under any circumstances. On the other hand you'll get the interesting possibility of hacking other participant's solution of participants from your room.
6. If during the contest, you have solved the problem, then it is locked, you can view and try to hack solutions of participants from your room. In the process of hacking, you can offer a test (or a generator program which outputs it to the standard output) on which hacking solution will not work correctly. If your test really breaks hacking solution, then it will become "Hacked" and its author will lose scores for it. Also he/she will receive announcement about successful hacking attempt and if the problem was not locked by him/her, author may fix the solution and resubmit it. But while resubmitting the solution will be judged not only on pretests, but on the hacking test(s) too. The hacking tests are unknown to the victim.
7. The target for any hacking attempt is the last currently accepted solution for this problem.
8. You may resubmit the solution at any moment, but it may reduce your score. It happens if resubmission is successful (i.e. passes all the pretests + previous hacking attempts). In this case, the previous successful attempt would be considered as a reason for penalty (see item 3).
9. After a successful hacking attempt you'll get 100 points.
10. After unsuccessful hacking attempt you'll lose 50 points.
11. If you have locked a problem, but your solution has been hacked, then you can still hack other participant's solutions.
12. Hacking attempt should contain a manual test or a test generation program (generator). Generator is a program which outputs the test to the standard output. The generator should always give the same test, for example, you can not initialize the random using the current time, etc. In any case, you have to follow very closely the format of the test. Each line should end with a newline.
13. Hacking attempt can be ignored. This happens in several cases: the test is invalid, generator fails, victim resubmitted the problem while hacking, concurrent hacking attempt was successful.
14. Of course, during the competition it is forbidden to communicate with other participants, do not use others code for solutions/generators, share ideas, solutions or hacks. In general, violation of the rules of sports and personal ethics can lead to disqualification. It is prohibited to access the network, attack system security, work with filesystem, try to hack the judge and etc. In short, respect yourself and others.
15. Solution code obfuscation and creation of obstacles to reading and understanding the solution is prohibited. It is forbidden to use any special techniques designed to complicate the reading of the code, to understand its workflow.
16. After two hours of entertainment contest ends. For each participant we choose the latter solution for each problem (of course, only successful). All such solutions are rejudged on the final set of tests. As a result, some solutions fail. The final result for the competition is the sum of scores for all the solutions that have passed final testing, plus the scores that you have received (or, conversely, lost) while hacking.
All, finita la comedia, that is, game over.
Waiting for your opinions,
MikeMirzayanov
P.S. I avoid term "challenge" deliberately. It can't be translated into Russian well, also Topcoder may have ambitions for the exclusive "Challenge phase", etc. I ask you to use term "hack" in discussions and comments. Thank you for your understanding.








It'll be so until that someone submit a new solution (if the problem wasn't closed; if closed - NO WAI), that again passes pretests And tests, that used to hack this person's solution before.
If BF/load are issues just add an X seconds delay between hacking attempts.
I don't really think it would be useful to try "hacking" at all. In TC challenges were already too much of an unusable gimmick for most div1 coders. But if besides of the risk of losing points, you also add that you cannot resubmit any more and that you have to use time during coding phase it is too much.
One more argument for making penalty for unsuccessful hacking - it should stop hacking flood and brute force hacking :-D
IMHO, with your system the whole idea of combining the coding and the hacking phases together almost doesn't make sense. I agree that the importance of hacking is now emphasized, but well, that's the feature of the format. By the way, in alpha round #20 ivan.popelyshev started to hack solutions only after he submitted all 3 problems himself, and still made it to the 1st place.
As for the tracking of the scoreboard — I'm sure there will be improvements of the interface that will make this easier.
I liked the idea of silent and multiple hacking by Kalinov. It makes sense.
1. The way I understand it, we cannot hack at problems we haven't submitted and locked ourselves. But we might have formulated usable test cases, even if we failed to submit. Would it be possible to lock a problem we haven't submitted - in effect we forfeit our chance to submit the problem any more in the contest - and then challenge?
2. In TopCoder, the text of solution code is unobtainable by copy-paste or any other way. This is essential to prevent automated challenges. Is there a similar restriction in the new format?
On the whole, this new format looks promising. Looking forward to the first rated match.
No, you can't copy-paste other's solution.
You can still hack others
P.S. I can see that this way you will be mention his cheating and will disqualify him, but it's just a matter of canceling the potential of cheating as much as you can. Also, note that you won't even think of cheating if the process is done for a small value of N.
Solution: Don't let someone hack another ones solution for more than once (or twice)
ایول
In your scenario, these friends have to:
Submit S1 that passes pretests but not T1.
Submit S2 that passes pretests+T1 but not T2.
...
N. Submit SN that passes pretests+T1+...+T(N-1) but not TN.
So, I think, for large Ns it is simpler to solve the problem E instead and getting more clean scores :)
Sorry for my bad English
Here's a sample Java solution for problem A from beta round #1
1. Proceed to the "Contests" page. (link)
2. Enter one of the previous contests. (example)
3. Proceed to the "status" page (status)
4. Find some accepted solutions in Java
5. Look at the code clicking the solution ID link.
P.S. It seems to be that you just print the answers for the sample tests. Instead you should read the input data from the standard input stream.
What about the following idea: after the finish of each contest, problemsetters upload all tests to all their problems as an archive (to some site). It's not difficult for authors to take an archive from the system ('Polygon') where the problems are created.
I don't know when the feature of viewing test data will be available on Codeforces, so I suppose this is the best solution. It's really not a good idea to ask tests in comments on the site, IMHO.
I am asking because some hacks may expose bugs that the system tests may not cover. In such a situation, a solution may get accepted because the author of the hack failed to check the solution or was in a different room.
How can I see the whole input in Source view? i.e. Test #6
Unfortunately, it's impossible.
i agree
So many experts are here,I'd like to raise my quesiton:I wonder how can I get a shirt if possible ? Thanks beforehand.
you were late for two years
even puzzled……
I have a doubt . If I solve the first problem 10 minutes after the start of competition and second problem after further 15 minutes i.e. 25 minutes after the start of competition . Then while calculating the score for the second problem solved will the time considered bye 25 minutes or 15 minutes . If it is 25 minutes , then is it not better to solve difficult problems first because there the penalty is larger . The text says it is better to solve problems by order in difficulty ( ascending or descending ) . May be difficult problem will large time so will affect time of larger number of problems , hence ascending order of difficulty . But just clarify which time will be considered . Thanks .