Consider the following Div. 1 rounds:
Codeforces Round 236 (Div. 1)
Codeforces Round 238 (Div. 1)
Codeforces Round 239 (Div. 1)
Registrants Participants #236: 1011 616 (61%) #238: 1052 608 (58%) #239: 774 538 (70%)
At least, 30% of registered users didn't participate in the rounds.
Do you wonder, what they really do? Do they read the problem statements or not?
Intro
It was interesting for me, and I've analyzed the following information:
- round registrants list
- last visit time of each round registrant during round (polling interval was 5 minutes)
- official participants list
In other words, ~1000 http-requests were made each 5 minutes.
Dear Codeforces, I beg your pardon, if it was to much :)
I don't plan to acquire this kind of statistics anymore.
Brief results
round userColor registrants participants neverVisited silentlyVisited 236 red 101 69 8 24 236 orange 268 171 34 63 236 purple 642 376 93 173 1011 260 (26%) 238 red 92 65 17 10 238 orange 291 177 34 80 238 purple 669 366 90 213 1052 303 (29%) 239 red 82 64 9 9 239 orange 238 165 33 40 239 purple 458 309 78 71 778 120 (15%) *participants — present in final standings *neverVisited — registered, and never visited the site during the contest *silentlyVisited — registered, made at least one visit, no submits were made
Result: 15% — 29% of round registrants visit the site and probably read the problem statements.
Visual representation
Round 236
Round 238
Round 239
What is the conclusion?
The rules are the rules.
Any change of rules opens a loop-hole for cheating.
I see the only probable step to smooth this situation and reduce the silentlyVisited users count:
DIV1-A problem should be simple enough for every DIV1-participants, or should seem simple enough.
UPD:
Another possible solution requires Codeforces's improvements and brings a little bit of butthurt, but seems efficient:
XX:XX:XX — 19:25:00 Registration Stage (!) 19:25:00 — 19:29:55 Participation Confirmation Stage 19:30:00 — YY:YY:YY Battle! Participation is confirmed => user can submit solutions and is present in standings. Otherwise => he can't submit anything and is not present in standings, but still can see problems.
Thank you for your attention :)
I believe there was quite popular tactics of "I will participate if I will solve C quickly". Making A easier would not help to counter this
Thanks, it's seems risk-free tactics for the users with rating below 2200.
Maybe, I should try it in the next round :)
Joking apart, what do you think about UPD ?
Joking? why? why do you think it is shame? It is a part of tactics and competing. I do the same — first i try to solve B.
Not a shame.
Rules are rules. Everything, that is not forbidden — the part of tactics :)
I think I would be rather angry if I am late couple of seconds to confirm my participation
There is also a danger to be late for the round registration. But registration is the mandatory action for the participant.
I didn't notice a significant displeasure about round registration among the community.
How about to add a button, pressing on which will give you for example 100 points at the beggining of contest, or less for each minute passed from the begining.
i think it's a good idea.
but what about participants who sometimes login about 10-15 minutes (sometimes more) after the round starts? i think we should be fair to them too, and allow them to participate if they wish! :)
What about participants, who late for round registration?..
Round registration is 12 hours before the contest. You can register in the morning and participate in the evening after the university or work even being late several minutes.
Your problem is artificial and nobody really cares about those 30% silent users — it they don't want to participate it's their right and it's not your business to prevent them from rest instead of solving problems.
In ideal world..
I think topcoder did well about what you mentioned. But I don't know whether it's right for Codeforces to follow or not.
I agree with you. But it's up to Headquarters/Штаб.
It would be interesting to listen theirs opinion about it.
Now I am beginning to understand, why dynamic-scoring is so unpleasant for some people
JuanMata some people :)
I think that a good solution would be: if you read any of the problems, the contest will be rated for you.
For me it's not a good solution. Sometimes I can miss the start of the round, because of some circumstances. But it's interesting to read hard problems and think about solution, without coding it. And if the round will be rated if you read some problem, then you will need to wait to the end of round, because in the other case you will definitely lose some rating points.
Did you mean " not a good solution"?
Yes, missed it.
Step1: logout your account
Step2: read the problems
Step3: decide whether you want to participate or not
Step4: login again.
Only showing problems to registered users during contest?
It's easy to register second account.
OR:
1) Register another account
2) Login & enter DIV.2 contest
3) Read DIV2-C .. DIV2-E problems
4) Decide, login main account or not
See UPD for the possible solution, which eliminates this cheating.
Maybe there are some solutions of this problem. But I now one (very very difficult solution ):
First of all problems Div2 C,D,E should't be the same with Div1 A,B,C or Div1 rounds should be independent as Div2 ( I mean Div1 only and no Div2 contest at the same moment ). The second variant easier to realise ( IMO ).
Second: there will not be both divisions contest.
Third: If you registered for the contest and you have read at least one task — this contest should be rated for you ( as on TC ).
My solution has got one problem: person may have 2 or more accounts in Div1, but I think it is very difficult to have many Div1 accounts. Thank you for attention.
You mean have 2 or more accounts in div2 :)
Do you care that much about those who don't participate (due to any reason) that you're trying to come up with some way to struggle with them? I agree that this way they might keep their rating at a bit higher level, but honestly I don't care that much about their rating to think how to stop them from registering but not participating even if they are online.
And with regards to your update: what's a point of registration then? Sometimes I'm coming late for the contest and I join when it's already going for 5-10 minutes. Even in this cases sometimes I write the contest, but with that change I won't be able to so anymore.
Yes. That's one of the possible coming problems.
But, IMO, first 5-10 minutes of a round — it is the most important time segment.
If someone misses this 10 minutes — his chances for a good place are extremely low.
I won round #100 spending first 15 or so minutes in taxi (through I was able to read statements)
Believe me or not, but in round 122 I was late for about an hour and the only solution for problem C at 1:59:08 was enough to get 80th place.
Aren't codeforces' contests (and similar) just about training? Nobody's getting money for a high rating, right? I was actually wondering for a long time, why many active forum participants do not compete that often.
Really nice observation. Probably the authority don't have a lot of things to do to solve the problem cause here the question is about the ethics of the participants!! But one things i can say that cheating can never give you the real taste, real excitement and real satisfaction of watching the word Accepted in green...
if it's not too much to ask, can u share some more info with us?
I'm guessing over here, but I believe it can easily be done, by periodically crawling and parsing some pages like a person's profile, you can get one's ranking (a simple map function, can pick the color), and whether he/she's online or not.
And eventually, have a copy of registrants list, can find the first column. :D
Round registrants :
codeforces.ru/contestRegistrants/<contestId>
(after reg is closed)This page gives info about colors just before contest
Last visit time of user:
codeforces.ru/profile/<userName>
page,Last visit:
block, there is a hint with exact time of visit in one of<span>
(during contest, each 5 min, for each registrant)So, if the user's last visit time is between current and previous request time, he is considered to be "spotted" inside this time segment :)
Round participants:
codeforces.ru/contest/<contestId>/standings
page.Final data is sorted using tricky predicate (isParticipant -> wasVisited -> color -> totalVisitTime).
It's difficult for me to comment your question about DIV-2, because I didn't analyse this data :)
I sometimes fall into your silentlyVisited users because I merely want to watch the contest, see how my friends are doing when I am unable to participate (forget to register or be late by more than 30 minutes).
Every system has its loophole. If the damage caused is not significant, fixing it shouldn't be recommended as more critical problems may always occur consequently. In this case, I think those people you are referring to are just minority of a big community thus we can simply ignore their behaviors rather than make the contest registration more troublesome for all other contestants.
When I register for a round, I usually compete. However, it's not a good idea when I know that I have to go somewhere after half an hour... or arrive late and there's no point in trying to solve the problems when many points have been lost. Of course, that's not a reason not to read the statements and watch the standings (unless I want to do virtual participation).
I don't unregister because there's still a chance that something went wrong (or right, however you view it) and the overlapping event was cancelled. Or I decide not to go.
After reading all the comments I thought of a possible solution that might solve most of the concerns. (and maybe create some others which I'm not aware of, I'm open to suggestions :) )
Someone proposed clicking a button to read the statements. Some others complained it didn't allow reading for fun, without competing.
Possible solution: just put two buttons that you can click after contest starts even if you arrive late: 1.Read but not compete 2.Compete.
Some others complained it would still be both possible and easy to do it. However, in this way this strategy would become illegal and I feel that most of this 25% silentcompetitors wouldn't do it if it was considered cheating, or they could be baned for doing so.