Скоро Codeforces Round 1133 (Div. 1, Div. 2)! Регистрация здесь. ×

Блог пользователя DmitriyH

Автор DmitriyH, 13 лет назад, По-английски

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 :)

  • Проголосовать: нравится
  • +85
  • Проголосовать: не нравится

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +69 Проголосовать: не нравится

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

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится

I think that a good solution would be: if you read any of the problems, the contest will be rated for you.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

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.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится -14 Проголосовать: не нравится

У меня почему-то такое ощущение, что это не график, а кто-то в пейнте побаловался

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +5 Проголосовать: не нравится

    Обижаете :)
    Изначально, это была HTML-table c td height 2px.
    Строки исходных данных отсортированы предикатом (isParticipant -> wasVisited -> color -> totalVisitTime)

    • »
      »
      »
      13 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +4 Проголосовать: не нравится

      Я же не сказал что оно так и есть, просто ощущение:)

      Просто графики которые ты делал раньше, для меня, были более понятны.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

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.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

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.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

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...

»
13 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

if it's not too much to ask, can u share some more info with us?

  • how did u acquire statistics like this (that too, grouped by color of rating!)? more precisely, how did u realize that a participant is neverVisited or silentlyVisited?
  • do Div-2 contests also follow similar pattern? if so, will a similar solution — making problem A very easy (like it's not easy enough :D) — work here also?
  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    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

  • »
    »
    13 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +5 Проголосовать: не нравится

    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

    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 :)

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +24 Проголосовать: не нравится

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.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Немного не в тему: как вообще работает Последнее посещение на CF? Кто-то может объяснить механизм? Во-первых, с какого момента там отсчитывается время? С начала сессии? Или от какого-то чекпоинта? Когда пользователь уходит в оффлайн, там может быть время вида "3 часа назад", хотя человек 10-15 минут назад написал какой-нибудь комментарий или сделал сабмит. Во-вторых, почему оно часто игнорирует короткие посещения? Пользователь, у которого последнее посещение несколько часов назад — заходит на короткое время, становится online, выходит — и у него опять старое время последнего посещения.

По теме — спасибо за интересную статистику.

»
13 лет назад, скрыть # |
 
Проголосовать: нравится +18 Проголосовать: не нравится

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.

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

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.