You may read complete rules here.
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, 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. Solutions and test generators can only use source code completely written by you, with the following two exceptions:
- 1) the code was written and published/distributed before the start of the round,
- 2) the code is generated using tools that were written and published/distributed before the start of the round.
Any usage of third-party code should not violate the right holder’s license or copyright. Remember that published code is not always free to use! At the request of the right holder, any code that violates the license or copyright may be considered as violating the rules.
All the changes in the code from exceptions 1) and/or 2) must be made solely by you. If there are any doubts about the time of publication, possible collaboration etc., a participant will have to prove his/her complete innocence by presenting compelling and satisfactory evidence.
Currently, the only reliable proof is the presence of code on the Internet and the presence of the used edition in the cache of well-known search engines.
For example, this rule accepts the use of the code from the website http://e-maxx.ru/ if the code was written and published/distributed before the start of the round. With the help of search engine caches, it can be easily shown that such code doesn't violate the rules. Similarly, it is permissible to use the code from a book/article that was published before the contest. On the other hand, using team reference code (for example, prepared for ACM-ICPC World Finals) is not allowed if there is no reliable and objective way to prove that the code was written before the contest.
This rule doesn't loosen the rules about prohibiting of communication, discussion, or any other form of communication between the contestants on any topics about the problems during the round.
16. 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.
17. 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.
yo wassup. how are you doing. i see this is like 14 years old. wanted to check how u doing
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.
Is this blog updated,sir??
no senor, i guess since it talks about 20 participants in a room but the current contests are totally online the marking scheme and the rules about hacking might be the same overall
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)
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.
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
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 .
Ofcourse 25. Otherwise, one would submit the solutions all at once. Even after 115 minutes, this way would give 30 % of 500 to one problem and full score to remaining problems.
Please even once vote up my comment ! I'd be happy.
There.
Too bad I'll downvote repeated versions of this post and any other offtopic/spam comments, so you'll, in fact, lose contribution due to trying too hard...
Sorry, my screen was upside down
Voted down by mistake....
You cant expect people to upvote you for that comment...
LOL
.
Why no format requirement? I posted code like ~~~~~ printf ("%d ", a[i]) (i meant several spaces but it only display one and i dont know y) ~~~~~ and succeed.
Besides, where I make private special judge(That means no fixed answer) (Another website is also alright)
Hi I am quite new to Codeforces.
I am have a couple of questions:
a) If I have locked my solution, and someone hacks my solution(as it happened today), then can I unlock my question to resubmit it? Also will I be receiving any points for a submission that passed the system pretests but got hacked later. As I see, it is showing '-1' in the points table against that question.
b) Also, how to hack anyone's solution. How to create a hack? Etc.
By the way, can anyone tell me what is this Virtual round? DO I get ratings for participating in Virtual rounds?
Virtual round is an emulation of any previous CF rounds. You don't get any rating changes if participate in it. you could read more here http://codeforces.net/blog/entry/2607?locale=en
Can I use third party algorithm or data structures? Not other participants code on the contest. And can I use other participants codes from previous contests? Writing DFS from scratch is so difficult. -Edit. Sorry I missed clause 15.
1) the code was written and published/distributed before the start of the round, 2) the code is generated using tools that were written and published/distributed before the start of the round.
But now I have another question. Is there any compile-time limit? If an open source third party algorithm library is big, can I copy and paste whole library into my Source.cs file?
As far as I remember, compilation time limit was 10 or 15 sec but I think you'll hit source limit first
Whom to contact for errors in system testing ?
Maybe I'm really slow, but I haven't found the unambiguous answer to whether we are allowed to use our own pre-written code?
I guess it implies that I can implement all the classical algorithms myself (instead of writing it from scratch every time or unethically copy-pasting from public sources) and publish it on GitHub or other hosts.
Could anyone please confirm?
Let a solution contain uninitialized variables. It may or may not return wrong answer during pretests. I tried to hack such a solution, but got unsuccessful hacking attempt. Is there a way by which we can hack these solutions surely. (Not on chance!)
No
Read about undefined behaviour :)
For Educational Rounds, you can download the exact version of compiler used and test locally (you will need Windows for that). An alternative is to use custom invocation tab. I don't think there is any good way to challenge them in the normal rounds though.
I have one question though:
Suppose i keep getting wrong answers on pretests during multiple attempts, will i get penalty for points even though my solution never got accepted.
No you won't. The penalty decreases the score of the problem for you, not your score. So if you have 500 points, and you make WA on a 1000 point task, then you'll still have 500 points, and the 1000 point task will become 950 point task.
You shouldn't hold any contest. It's a shame
If my solution passed pretests, and I fixed my solution and resubmited it. After that my previous submission was hacked, how will my points and hacker's points change?
I just noticed that today I am not able to participate in the contest which I've already registered in. Now in this case (which I can't enter the contest) is this going to affect my rating or not?
as long as you don't submit anything during contest, your rating won't be affected
If I register but anyhow forget to participate in the contest, will I lose ratting?
If you didn't make any submissions in the contest, it's unrated for you.
Hey MikeMirzayanov, this comment is regarding the mail is received on 31/01/2024 at 19:24 IST. I am completely unaware/unrelated of the user tagged in the mail as "Villager26" and I have no idea how my solution seems to be coinciding with his solution. I am providing as much proofs as I possess: 1: My submission(244137728) is much earlier than "Vilager26"(244144784). 2: The solution size is very small and requires very similar variables like i, j and ans. This could be possible reason for plagiarism. 3. May be my ideone.com account has a public code view settings enabled, which I deeply regret and will change to private as soon as possible.
Please look into it and hope this warning doesn't affect my ratings. Hope to listen from you soon.