Hi Codeforces Community,
Are you rated 2100 or higher? If yes, then it must be frustrating waiting for rated contests. I thus, bring to you a serious (not troll) proposal for Div 1.5 contests and some small changes in contest setups. Note that, I have also prepared a contest and know very well how hard it is to come up with interesting and novel ideas, so this is by no means a blog where I'm just criticizing setters that they are not setting frequent contests.
Why Division 1.5?
The frequency of Div. 1's is extremely low is compared to Div. 2. Moreover, coming up with the last problem of a Div. 1 round is extremely hard. If you have got good enough ideas (up to let's say Div 1 D), you still get to make the contest!
How does it benefit the contestants?
Well, more contests are always fun!
How does it benefit the setters?
Read the answer to the 1st question.
Rated Range?
Let's make it rated for up to 2600.
But you know, anyone will become red, blah blah blah, rating inflation blah blah!!
It would still be hard if you're competing with GM participants. The number of participants who this division excludes is somewhere around 80-100. If you're already experiencing a huge delta in these rounds (let's say < 10 rank), you would get somewhere around rank 50 in a Div. 1 contest, which is still sufficient to reach 2800.
Two more things:
1.) Lots of contests these days have 6-7 problems. Can we just settle for 5 problems per division like the good old days? Solving many problems in a contest feels like a chore and it would mean more contests in which you can spread out your problems.
2.) Please start taking individual problem proposals, if a setter only has a good Div1C idea, he can still combine it with other setters' problems for a contest. And what will that mean for us? More contests!! Yay!.
Feel free to suggest anything in the comments.
I feel quality is also (maybe more) as important as quantity.there is not much mention of it.
I do not know why everyone only wants to solve problem in contest and not outside contest.
I don't think your comment on rating inflation is true.What happens when all GM's start moving above 2600.
Also this will lead to decrease in Div1 contests.
Only time will tell whether this would lead to a decrease in Div 1's.
Regarding rating inflation, what about it? 2600+ users make around 100 users per contest. The only reason we don't get frequent rounds is because of these extremely good participants. A regular CF Div.1 has roughly around 1000 participants, How bad can/will it be if we only exclude 100 participants? 50 more IGM's? I don't see it as a problem. Maybe somebody does, I am of course open to change my mind about it.
Regarding whether or not I like solving problems outside contests, I do enjoy it. Solving in a contest although feels more exciting.
Regarding the issue of quality, it's not necessary that if a round is Div.1, it is good. There have been bad Div.1's too.
I guess you are the admin of Codechef, if quality was so important for you, codechef shouldn't sometimes allow boring hard problems on unavailability of harder problems.
I would be happy to take some constructive criticism on this.
Firstly, can you describe what makes a problem 'boring hard problem'. Also please point some 'boring hard' problems I have used in the contests with views why you feel they are boring.
Sure, here are some of the examples:
LONGCOOK this is one of the shittiest problems I have seen in an official contest, it's not hard though.
FCTRE for an experienced programmer, even though the time limits it's quite clear we need to use Mo's Algorithm, and now the problem is converted to a hard implementation task with nothing non-trivial.
CYCLCSUM this is a very standard problem, people could copy code from cp-algo for it.
Though, problems in last cook-off were nice and I enjoyed them.
I was admin for only problem 3.
I surely agree that it is not a beautiful problem that is non trivial. It is based on tweaking the kadane algorithm. that was expected to be trivial observation for experienced users. But how would someone recent to programming learn abt it (given people seem to only want to learn from participating in contests).
I feel the level of thinking one needed here to reach to directly using kadane was comparable to hardness of knowing kadane.
I feel a problem is boring when the reducing part to standard problem is way easier than the standard problem.
I feel a problem is acceptable when the reducing part needs few good step(s) whose difficulty is comparable or more to the standard problem it will be reduced to.
I feel problem is great when you start attempting it and you do not know any approach but after trying several things you move forward in one (this is mostly atcoder problems).
Also I do not claim all problems will be beautiful but my main motive is to avoid first kind of problems.
I agree with you.
My mail id has admin3. But I use my problems under teja349 handle.It's not me.
I would be happy to see those! But I think this would lead to even more rare Div 1 contests, as why bother with just one extra problem if you can throw a Div 1.5 instead... Maybe what we need is Div 1 for up to 2400 or 2600, and then extra hardcore Div 0 for red coders, with maybe 3-4 relatively hard problems — current Div1A-Div1B do not seem to pose any problems for them anyway.
it's not frustrating. just... relax and do anything, agree? there are a lot of possibilities to do something other from changing your rating.
I have to say that some of these div1 problems were unsolvable...
I thought div2 only was already div1.5, why can't you just wait a few weeks like us? I know it's frustrating waiting just to get — but we can do all these unrated contests meanwhile :(
Of course, it is better to wait for quality problems. But there can be issues where a contest can't be made because of the last problem. In that case, it is better to just develop a Div 1.5 contest instead.
Also currently, the gap is huge between the frequency of Div. 1 and Div. 2 contests. When you are purple or below, you get a rated contest almost twice every week but when you become orange, suddenly there is only 1 contest every 2-3 weeks.
There are also some benefits of more rated contests IMO:
You don't generally give up on solving. (I know it is my problem and I need to work on it, but still)
You get used to more contests.
Fundamentally it's not really clear to me what problem you are trying to address. There will always be separate divisions, with higher rated divisions occurring less frequently. And thus, it will always be "inconvenient" for people at the bottom of those divisions to deal with the reduced frequency in contests.
To be honest, I don't even think contests across all platforms occur that infrequently for Div1 level people. You have a CF div1 round every 2-3 weeks, an AGC every 2-3 weeks, and an SRM maybe every 4 weeks. Averages out to a bit over one contest a week. I didn't even count CodeChef in here since I'm not super familiar with their contests, so it might be even more frequent.
The problem I'm trying to address is the problem of less frequent rated contests for Div. 1 participants, well not just less frequent contests but also the huge gap between frequency going from purple to orange.
Any huge gap is bad, for anything, be it difficulty jump in problems or frequency drop in contests.
Let's take any Div. 1 contest, it sometimes has too many difficult problems, which can easily be spread out over a few more contests. There are contests where are the last 2 problems are solved by a single digit number of participants, can't they both be used for separate rounds?
"The problem I'm trying to address is the problem of less frequent rated contests for Div. 1 participants, well not just less frequent contests but also the huge gap between frequency going from purple to orange."
What I'm trying to say is that if you implement your suggestion it seems like there would then just be a big frequency gap going from 2599-2600. It seems like it just pushes the problem from being something you and other people face to something only those other people face.
"Let's take any Div. 1 contest, it sometimes has too many difficult problems, which can easily be spread out over a few more contests. There are contests where are the last 2 problems are solved by a single digit number of participants, can't they both be used for separate rounds?"
This kind of thing is obviously much easier to judge in hindsight. If the setters knew two problems would only be solved by a single digit number of people then they would wait, but it's not easy to tell how difficult a problem is before you run the contest.
If you want an even more extreme example, take this problem from NAQ 2020, which the judges all thought would be one of the easiest problems in the set (indeed, if you look at the solution it's very simple) but many teams struggled with it and it was on the more difficult half of problems, with even teams like MIT not getting the intended solution (and instead finding a different, unintended, more difficult solution).
"This kind of thing is obviously much easier to judge in hindsight"
That's why you need testers with a varied set of levels, why not get that instead? Moreover, it is my request to all setters in the whole world to please not judge a problem difficulty by how its solution looks. Rather judge it by how difficult it is to come up with the solution, this can only be done by monitoring the time it takes for someone (not just a single person, but several people with various ratings or skill levels) to solve the problem.
As I understand it, what you are describing (judging the difficulty of a problem by performance of varied level testers) is how contests are currently tested. Looking at the last four rounds, this seems to be the case (1 2 3 4). But it is still an imperfect process. One example of an imperfection is that problems can suddenly become easier or harder simply by nature of being solved by more or less people, and this is an effect that is hard to replicate in testing.
Why not just have 1 single division but different ranking groups? Around 90% of Div. 1 candidates won't solve more than 3 problems anyway, so doing that will increase the number of contests for Div. 1 and the opportunity for lower rankers to compete with Div. 1 overlords.
div1 without last few problems is called div2 i thought.
The reason why Div.1 rounds are less frequent is because of the hardest problem, which is extremely difficult to come up with. Thus, many people don't propose a round at all, despite having sufficiently good problems. If we remove the last problem, we can increase the frequency of rounds as for some people, setting a Div 1.5 still looks achievable and they won't have to settle for Div. 2 or wait too long to come up with the hardest problem. This would impact roughly 70-80 participants overall, per round.
Where are those "many people"? For all the cases I've seen, if they have enough problems up to div1 D, they either just ask some high rated coder for the help with the last problem or just set a div2 if they've got no one to asked to.
I think what you're suggesting will just decrease the rate of div1 even more. So I'm kind of against it.
"I think what you're suggesting will just decrease the rate of div1 even more. So I'm kind of against it."
I won't even look further than the recent 2 Div. 2 contests.
Codeforces Round #652 (Div. 2) — Could be easily Div 1.5, the last problem wasn't solved that much.
Codeforces Round #651 (Div. 2) — Would be good staying a Div 2 only round as the last problem isn't that hard. And I think this is good as the last problem of Div. 2 shouldn't be more difficult than Div. 1C.
Thus, we can just change some of the Div. 2's to Div. 1.5's. It would have zero effect on Div. 1 frequency.
And also, one more workaround is to compensate writers significantly more for Div. 1 rounds.
"Codeforces Round #652 (Div. 2) — Could be easily Div 1.5, the last problem wasn't solved that much"
I think the problem was fairly simple if you had the observation that you can
consider each round independently and consider cases on $$$e_i$$$ mod 2 or mod 4 or something like that
so it just reduces to a bunch of casework / annoying implementation, which is what I think held people back from AC'ing it. I feel like there are a bunch of rating 1900-2600 people who wouldn't like to have that as their last problem in a rated contest (as they wouldn't learn much from it). Nevertheless, there are some insanely hard Div2's like Round #623, so I see your point.
Nevertheless, I feel like easy Div2 contests are much more common than hard Div2 contests (which seem to generally be made by strong LGMs/IGMs like PavelKunyavsky that usually make Div1 contests at the same time), so in that way, I feel that creating Div1.5 will place an additional burden on skilled problem setters and reduce the frequency of Div1 contests.
Also (on another note), wouldn't it be a bit confusing to have Div1, Div1.5, Div2, Div3, and Div4? (I remember originally thinking Div4 was a joke haha)
Based on that, I have a better proposal: just let everyone participate in Div2 contests :)
Many Div2s and less Div1s lead to many people stuck around 2100 to 2150.
And the number of such peeps increase in every Div2 contest.
This is very true. When I first became master a month ago, I was rank around 2100. But due to the lack of Div 1 contests, now I'm rank 2777 even though my rating hasn't changed.
I'm curious about some details of this idea.
Firstly, will Div 1.5 contests run independently, or be merged with Div 2 contests (like Div 1 contests currently are)? I can see arguments going both ways on this.
Secondly, what will this do to Div 1 only contests? While the number of Div 1 only participants in this scenario is small (only about 80-100, according to original post), I don't think they'll be very happy that they are now excluded from even more contests. And I feel that this proposal is more likely to draw setters away from Div 1 rather than Div 2.
I would rather try to solve current problem with infrequent div1 contests, rather than create new division what can eventually make many more problems. I don't know perfect solution, but maybe we should go with something like ,,hiring" a few known, very good problemsetters (like 300iq, Errichto, antontrygubO_o) so everyone would conduct one div1 contest per month? I don't know how hard is it or even if it's possible for such problemsetters to prepare one round per month. Probably it would make sense to offer some better compensation for such long-term commitment, but I believe that it is some solution for this problem. Of course everyone else would be able to conduct his own div1 contest as it is right now, it would just guarantee that at least once per week there would be — highly probable — high quality div1 contest.
It's difficult to get that many quality ideas no matter the amount of money you pay me. Should CF maybe pay more to high-rated problem setters? I'm not sure. Maybe increasing payment for div1 round would help, hard to say. It wouldn't affect me.
Here's my solution: let's teach people to become problem setters (I'm planning such videos btw. but that won't be enough). The easier it is for yellow+ people to get involved, the more div1 rounds we will have.
How about this idea: Keeping div 2 contests rated for upto 2300 rating. But separate rating calculations for participants from 1900 to 2299.
Div 2 is already fine.
How about this instead: Upgrade div2 — higher bottom and top rating caps, harder problems but not IGM-level hard; upgrade div3 to be what div2 used to be, and use div4 for "beginner" contests — slightly easier div3.
Let's just ban all LGM from CF forever. Once you turn 3000 you can only participate in AGC.
Don't worry Um_nik it won't come to this. You're worth more than 10000 cyans, 5000 blues and 2000 yellows.
To the div1 contestants who are unhappy about the lack of rounds: why don't you take turns creating rounds? One week tourist creates a round, next week Um_nik does the same, and so on. This way you solve the scarcity-of-div1-rounds problem yourselves.
I don't see many other options as the pool of individuals who are capable of creating good div1 problems is small.
Because we are generous and create Div.2 rounds instead for greater good.
We appreciate it, but unfortunately most of us are incapable of returning the favor by creating Div1. rounds.
Good idea!
It seems that if you take Div 2, remove couple of first problems and add one more F on top, that is perfect Div 1,5. Like Div one D is usually what 2800-3000 in difficulty. In div 2 F is around 2500-3000 as well.
Here is the contest: https://codeforces.net/contest/1349/standings. D is 3200. We can see that most of the guys had up to C less than an hour and then done. So 1,5 could have distribution of 1500-1800-2000-2300-2500 in difficulty plus/minus eps.
About quality: I am participating in div2 and edu rounds and problems are actually nice. So it seems with extra problem that could be div2/div1.5 contest.
Also looking at edu/div2 scoreboard usually there are ~200-300 participants from div1. Even LGM participate there and close all in 40 mins. But F is not solved by all 200 div 1 guys, so those can easily get turned into 1.5.
Sounds fuckin good to me !! more contests ....
How about this — Remove the concept of divisions and bring in custom rated range. Prepare a round and then based on problem-setters' and testers' review, decide the upper cap of the rated range. This will at least result in more rated rounds for 2100-2600.
Just for fun, Div 1.5s have already existed