poikniok's blog

By poikniok, 9 years ago, In English

I am writing this in the hopes that Codeforces will seriously reconsider allowing purple coders into Division 2 contests. My personal reason for this is that the problem standards in Division 1 contests are quite high, and as a purple coder in the last few Div 1 contests I have not been able to solve any of the problems, and therefore I end up effectively not participating. Having read a few discussions that regard this as almost “cheating” in some way is also frustrating, because is one supposed to submit a known incorrect solution or what? Basically as a blue coder I was perfectly happy, because I could compete in Div 2 contests, and solve the A and B problems and have good shot at the C. However now having moved up to Div 1 has made my experience far less enjoyable, as in the more difficult contests I am simply unable to solve anything, and in average contests I can only hope to solve the 1st problem at best. Now of course the optimal solution to my problem is simply more practice until I am able to solve Div 1 A’s and B’s, and effectively move up to yellow, however this is not a true solution. Basically I feel that Codeforces has a gap into which purple coders fall right now, and it is rather unfortunate. I really do not see any downsides to purple individuals being in Div 2, because it is quite rare I think for any people around my level to even look at the Div 1 D and E problems. And while maybe for grandmasters to solve the Div2 A’s and B’s is insulting because of the simplicity of the problems, as a purple competitor I do not feel this way at all. Particularly looking at the upcoming contests right now and seeing 2 Div2 contests upcoming is rather frustrating, because I will only be able to compete out of contest, without affecting my rating, and because I know when a Div1 contest rolls around in two or three weeks there is a >30% chance I will not be able to solve anything, and will effectively sit out the contest. I realize that such a change should not be considered lightly, given that this has been the way things have been for 5 years almost now, and Codeforces popularity has rightly skyrocketed. However I think that there are strong reasons for this change that have become clear now, one of which is I feel rating inflation, along the lines that being top 200 in Div2 is enough to get bumped up to Div1, and also as competitive programming advances Div1 problems becoming harder. This combination I feel has put many people in situation where they move up to Div1 without having the tools at all to effectively compete. I thank anybody who read this, and also look forward to any comments and counterarguments that people have.

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

| Write comment?
»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

I have the same problem myself. But how would allowing into Division 2 help me to solve A's and B's from Division 1? I don't get it.

If you don't want to compete in Div1 without being able to solve anything, I think it's a good idea to submit something, just for your rating to go down. Then after a while you will end up in Div2, where you are able to solve something.

  • »
    »
    9 years ago, # ^ |
      Vote: I like it +28 Vote: I do not like it

    Well to your first question it would not, however the point of a rating to me is to try and accurately reflect the skill of a person. The fact that we have to consider here purposefully submitting a wrong solution indicates to me that there may be something wrong with the rating system. And in any case I think the end result would be that I would bounce back and forth between Div1 and Div2, which is not a truly satisfying answer.

    • »
      »
      »
      9 years ago, # ^ |
      Rev. 2   Vote: I like it +13 Vote: I do not like it

      Man, you really wanna have a perfect division system that doesn't have the gap between Div1 and Div2. That's impossible unless there are 3, 4, or more divisions. But that would be too much, right? So having the gap between two divisions is an inevitable problem. It's normal that some people have to bounce back and forth between Div1 and Div2. I used to face that situation myself (you can tell from my rating graph), but the point is that you need to overcome this. This is why we have to keep practicing and get better until we can stay in Div1 consistently. And you can tell that you're improved significantly, which is an achievement.

      • »
        »
        »
        »
        9 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Just want to add that, I'm not really against the idea of allowing some Div1 contestants to join Div2 officially, but I can't really see that it will help you improve that much or we must do it. Of course, a good thing is that we can join more contests :)

      • »
        »
        »
        »
        9 years ago, # ^ |
          Vote: I like it +6 Vote: I do not like it

        Why 3 div is to much? What about div 1.5 with problems: B div 2 + all div 1 tasks?

        • »
          »
          »
          »
          »
          9 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Well, when all three contests happen in the same time, the number of participants in div1 might be very low (only 2050+ rating people join the div1 contest?). Is that a problem? haha

»
9 years ago, # |
  Vote: I like it +11 Vote: I do not like it

The system where you are given rating if you open a problem(like topcoder) is a perfect solution for all these problems . I don't know why Codeforces is not using that system . Some people say , that people would start making multiple accounts to cheat in such a system , But the situation is the same as topcoder and there are very few cheating cases on topcoder(atleast in div1) .

»
9 years ago, # |
Rev. 7   Vote: I like it -16 Vote: I do not like it

I have an idea! The division level sucks. If contest is combined of div1&2 then no division separator is needed! so, it will work!

  • »
    »
    9 years ago, # ^ |
      Vote: I like it +7 Vote: I do not like it

    I disagree with you. You want to say that in the last round there should be only one promoted to Div1 which I don't think it is right.

    In my last two div1 rounds I solved nothing which proves that at these rounds I didn't deserve to be in div1 but my rating was above 1800 which is more closer to yellow than blue. So maybe the rating boosts should be less because now I am just feeling stupid in most of div1 contests that I participated in...

»
9 years ago, # |
Rev. 3   Vote: I like it +25 Vote: I do not like it

I think a reasonable thing to do would be allowing everyone to take part in div 2 unofficially, (even when there's div 1 contest). It makes many more people happy while current system should be able to allow it (for div 2 only contests, people can already participated unofficially).

»
9 years ago, # |
  Vote: I like it +34 Vote: I do not like it

I'm not sure how widespread your problem is, but if majority of purple-level coders have the same problem, then moving the division cut-off a little higher should be considered.

»
9 years ago, # |
  Vote: I like it +60 Vote: I do not like it

In my opinion/experience, one reason for the current system is that if you are a purple coder, you should basically be able to guarantee solving Div 2 A/B without much difficulty, which means that these problems aren't that helpful. It's more valuable as a contest experience to start with Div 2 C/Div 1 A and possibly not solve it but be challenged than to just practice implementing Div 2 A/B over and over but not learn or gain anything.

»
9 years ago, # |
Rev. 4   Vote: I like it -13 Vote: I do not like it

Are you suggesting that there should be a problem that almost everyone in D1 can solve? If so, that sounds a lot like adding the "Participate" button that some users here have suggested.

I guess I'm just wondering why the solution you jumped to was "let candidate masters participate in D2 contests" rather than "make D1A's slightly easier".

»
9 years ago, # |
  Vote: I like it +30 Vote: I do not like it

My point of view on difficulty of problems may be a little biased, since we are discussing about difficulty from purple coders right now, but even so, I think that in fact Div2 match much better purple coders than Div1. Div1 A and B are usually straightforward for me, but Div1C is sometimes challenging, B is sometimes not that easy to implement and even Div1A is sometimes really hard (543A - Writing Code, 506A - Mr. Kitayuta, the Treasure Hunter)! According to estimations given by Codeforces rating system I will win ~99 out of 100 duels with random top Div2 guy. If that would be the case then what are the chances of div2 guy doing very well in his problemset since intersection of problemsets is big?

Or looking at it from another point of view. I didn't do any analysis, but I guess that constantly doing 3 problems in Div2 is sufficient to go to Div1. But what about other 2 problems? It seems that those are hard to approach for him, so in Div1 he will do 1 or at most 2 problems which sounds sad. Forcing him to do Div2A, B and giving him Div2E as the hardest available problem doesn't sound insulting for him.

Another thing is rating inflation. I observed it in ratings of best coders, but maybe that's the case also in lower parts of standings. 2600 now is sth like 2400 2 years ago. 2 year ago there were ~5 IGMs and now there are 44 of them. That could mean that current 1700 is sth like 1500-1600 2 years ago. But that is somehow blind bet. Probably it needs more careful examination.

Ergo, I consider that moving Div1 cutoff to for example 1800 or even higher as a very good decision and highly recommend to CF staff to consider this.

(Though there are some downsides of this. Number of people in divisions will be even more unbalanced and there will be less possibilities to hack people.)

  • »
    »
    9 years ago, # ^ |
    Rev. 2   Vote: I like it +1 Vote: I do not like it

    I think the main problem in rating inflation in blue-area is that: as number of contestants increase, it becomes much easier to reach div 1. Blue guys just need to do better than their div 2 peers, which is maybe solving 3 problems.

    If we increase cutoff, that just solve the problem for a while. The main issue is still there, and now probably the issue is worse, because now div 2 guys when performing better than their peer, can jump directly to 1900 (currently, 17xx guys goes to div 1, solve maybe 1 problem and jumps back to div 2). Repeat few times and suddenly everyone becomes red.

    • »
      »
      »
      9 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Is this really what would happen though? I have a hard time visualizing the rating system sometimes, but from reading the main blog post about it the total sum of ratings of the contestants should not change. Effectively I think what would happen is that first of all there would be stronger competitors in Div2, and therefore it would be just as hard to get to 1900 rating as it is now. It seems to me that by your argument that once somebody reaches Div1 right now, with very strong competitors, they can easily jump up in rating, however this is not the case because these very strong competitors will typically end up beating you. I mean I kind of understand in the sense that right now combined division events typically lead to slightly higher ratings changes for everybody, but I do not think the effect is huge. In any case maybe minor adjustment needs to be made to the rating system anyway, because regardless of the possibility of this change we still have combined division events occasionally.

      • »
        »
        »
        »
        9 years ago, # ^ |
          Vote: I like it +3 Vote: I do not like it

        "once somebody reaches Div1 right now, with very strong competitors, they can easily jump up in rating"

        No, I didn't mean that. What I'm trying to say is, increasing boundary to 1800 is like fighting inflation with more inflation, and after a while everybody has higher rating while the problem is still there. If you increase rating boundary to 1800:

        • Top div-2 guys will still jumps between 2 divs, just that now they will have higher rating than before, 18xx instead of 17xx.
        • Div 1 guys will have higher rating increase, because previously they won against 17xx, now they win against 18xx
        • »
          »
          »
          »
          »
          9 years ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          Hm yeah I guess I see your point. To me the hope would be that the level to be a top Div2 competitor would increase, so it would not really be inflation, but I guess it might not work out that way with this rating system. Basically ideally I think the cutoff to go from Div2 to Div1 should be along the lines of solving 4 problems in Div2, rather than barely 3, as solving 3 means in Div1 struggling to solve the first problem, and just changing the cutoff to effectively 4 would make it more fun for everyone because now even the worst people in Div1 would have a chance to solve 2 problems.

»
9 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

I'm purple also. In all Div1 contests I joined, I was able to solve at least one problem — except "VK Cup 2015 — Official Round 1" mainly because of bad team organization -.

I didn't get your idea. Why do you say there's Div1 and Div2 contests. You say "have good shot at the C" which is Div1-A. In almost all Div1 contest, most competitors end up with one or two problems. Even yellow-rated programmers may only solve 2 problems and gain positive rate change.

If you want to return to Div2 contest you may participate out-of-competition or virtually to have the "joy" of solving easy problems. If you didn't participate in Div1 contest you won't improve. How would you be able to solve Div1-B or C if you only solve Div2 A and B to gain the joy of implementing rules written in the problem statement.

I think that div1 and div2 separation is just to save your time. If you're qualified for Div1 then you'll only waste time on Div2 A and B. You'll not learn anything new, they're not even interesting.

On TopCoder, I became blue from the very first contest. It was mainly about luck. I happened to be familiar with the problems. So what should I do now?! Should I decrease my rate with unsuccessful hacks to return to Div2 instead of training hard to be TRULY eligible for Div1?!

I find it more enjoyable when the problem forces you to think more and more and learn new things. For example, I wrote many pages of equations trying to solve the sixth problem in CodeChef May 2015 long challenge which is running now, I didn't solve it (completely) to the date but I find this enjoyable. Even if I didn't solve anything in a contest, I'll continue thinking and up-solve the problems just because I like competitive programming and want to improve my problem solving skills. So you should do your best to solve A and B and have good shot at the C but in Div1. :D wish you high rate soon.