Recently, after like every Div. 2 contest I see some blogs/comments saying that ~2C problems are getting easier. What's the evidence? They say these problems have many solves.
No, I think it's the opposite.
Definite number of solves is not a good measure for evaluating the difficulty. A not too precise, but statistically more reliable way to evaluate the difficulty of a 2C problem would be calculating (# of official solves on C) / (# of official solves on A)
, assuming that most people have always been able to solve 2A.
Let's calculate them for recent 10 Div. 2-only contests' (not counting Educational rounds) C problems:
- Codeforces Round 963 (Div. 2) : 6755/19951 (33.86%)
- Codeforces Round 961 (Div. 2) : 2384/13980 (17.05%)
- Codeforces Round 960 (Div. 2) : 3490/11867 (29.41%)
- Codeforces Round 958 (Div. 2) : 7239/12234 (59.17%)
- Codeforces Round 956 (Div. 2) and ByteRace 2024 : 5504/16414 (33.53%)
- Codeforces Round 955 (Div. 2, with prizes from NEAR!) : 7654/14965 (51.15%)
- Codeforces Round 953 (Div. 2) : 5115/12031 (42.52%)
- Codeforces Round 951 (Div. 2) : 9051/17663 (51.24%)
- Codeforces Round 949 (Div. 2) : 1128/10942 (10.31%)
- Codeforces Round 948 (Div. 2) : 1236/15487 (7.98%)
In average it's around ~33.6%.
So, was it harder a year ago? Let's check 10 contests from exactly 1 year ago:
- Codeforces Round 890 (Div. 2) supported by Constructor Institute : 3009/14464 (20.80%)
- Codeforces Round 879 (Div. 2) : 4729/9589 (49.32%)
- Codeforces Round 877 (Div. 2) : 3815/10781 (35.39%)
- Codeforces Round 876 (Div. 2) : 3754/8225 (45.64%)
- Codeforces Round 875 (Div. 2) : 3323/12036 (27.61%)
- Codeforces Round 870 (Div. 2) : 3869/4630 (83.56%)
- Codeforces Round 868 (Div. 2) : 3451/6837 (50.48%)
- Codeforces Round 864 (Div. 2) : 2165/9088 (23.82%)
- Codeforces Round 862 (Div. 2) : 3750/10261 (36.55%)
- Codeforces Round 861 (Div. 2) : 601/5809 (10.35%)
In average it's around ~38.4%.
As you can see, this proportion in recent rounds has actually decreased compared to 1 year ago. Although it's not drastic, we can't really seem to be able to say that 2C's are "getting easier". Furthermore, with the amount of cheats nowadays, after we remove such counts, we can almost surely say that the problems are actually getting harder.
So, is this 'traditionally' the intended difficulty of 2C? Well, let's take a look at the contests 5 years ago:
- Codeforces Round 578 (Div. 2) : 2959/6065 (48.79%)
- Codeforces Round 577 (Div. 2) : 2420/4727 (51.20%)
- Codeforces Round 574 (Div. 2) : 3414/4633 (73.69%)
- Codeforces Round 568 (Div. 2) : 4104/5467 (75.07%)
- Codeforces Round 567 (Div. 2) : 621/3683 (16.86%)
- Codeforces Round 566 (Div. 2) : 1342/4787 (28.01%)
- Codeforces Round 563 (Div. 2) : 3526/4653 (75.78%)
- Codeforces Round 561 (Div. 2) : 1683/4164 (40.42%)
- Codeforces Round 558 (Div. 2) : 1182/3226 (36.64%)
- Codeforces Round 554 (Div. 2) : 1063/5167 (20.57%)
It looks more significantly different. In these contests, the average is around ~46.7%.
As I wrote in a previous blog, I think recent rounds of lower divisions are generally too hard, and part of the reason I think is that people are scared of getting too large absolute number of solves. Having 40 solves on 2F nowadays isn't same as having 40 solves on 2F 5 years ago. Nobody would argue that a 2F was too easy if it had 10 solves 5 years ago, but these days people will complain 40 solves on 2F is way too easy, even though the number of participants has increased like 4 times. Similarly, having 8k solves on 2C nowadays isn't same as having 8k solves on 2C 5 years ago. It's like having 2k solves back then, which nobody would've thought to be too much.
Also, I want to believe that as time goes on, the average skill level of participants also increases, so if two problems have similar value of this proportion, then the one made recently is more likely to be harder. We are not getting easier problems than before.
The chat gpt compressed the text for me and said "skill issue".
It's not div2C getting harder, it's people getting weaker
Sorry, but I don't think someone with a verifiable history of cheating is a good source to trust on this.
sorry, but i don't think somebody with 1900 rating can judge :D
nah, he can
no
Wouldn't average problem rating be a better metric of C difficulty instead of solve percentage? Solve percentage can also decrease if there is a disproportionately larger number of greys/greens who aren't at C level yet. Unless there's something wrong in this thinking? I'm not sure how exactly problem ratings are calculated, but surely they take into account the ratings of participants who solved them?
I still think it's very hard to compare because problem ratings from 5 years ago will probably shift if they were re-calculated today.
I agree, but it's hard to collect the full information of contestents and even if we use the API it doesn't provide us the true rating, so it's hard to predict the real rating distribution of the participants. I wanted a simpler way to briefly show the overall tendency. It didn't need to be very precise.
Yeah that makes sense, thanks for the effort!
You don't need information about contestants to get problem rating. This is a number just near the problem tags.
By the way, it can be collected manually for just same 30 contests that were mentioned in your blog. Will be very interesting to see the result. Also think that problem rating can be collected automatically.
Problem rating is an unideal metric because often, an 1800 from years ago won't be the same level as an 1800 now. I think this ratio of solved C / solved A makes more sense.
I agree that the C`s are hard
But The submission percentage difference between previous year and current years may be because of the following reasons: * The number of newer participants increased
some sources : that say that new participants(with lower rating) has increased over the years
https://codeforces.me/blog/entry/126802
https://www.linkedin.com/posts/priyansh-agarwal_i-compared-the-stats-of-indian-coders-on-activity-7218249783780524032-O9n1?utm_source=share&utm_medium=member_desktop
Thanks for the articles. It makes sense. Maybe it explains a bit of bias in my blog.
I wonder how many greys actually participate in Div. 2s, since I've seen many people trying to avoid Div. 2 because they could solve only around 1-2 problems and are likely to lose rating. As we can see in recent contests, Div. 3/4 rounds usually have around 10k more participants due to this.
There're already more Div.3s and Div.4s, you can't hope that Div.2s will be as easy as before. Moreover, we can't always step around and around. Harder problems are good for academic progress.
I'm not saying we should lower the difficulty of 2C's (the other blog is more about the hardest problems). Just wanted to say that the actual tendency of 2C's is not how many people judge just by the number of solves.
If the tone is a bit inappropriate, it's my problem, sorry. My actual meaning is only to state objective facts, 'you' does not really refer to you.
No problem, I appreciate your opinion.
I won't compare it to 1 year ago but compare it to the contests just a month ago to see the number of solves. Also, comparing it with A might be a wrong way to estimate the difficulty because the difficulty of As and Bs have dropped too!
You have to admit because of the quantity of alts and cheaters nowadays, the true solve rate of 2C might be much lower than your estimation.
I think 2C is harder than before.
Do you have any concrete proofs for this kind of claims? Or are they nothing but your gut feelings amplifying the truth for your own petty satisfaction in mind?
I really want to know where this "nowadays" is coming from. Are there actually more cheaters (proportionally?) now than a year ago? Is there any data?
There have always been cheaters. All the reasons people have to cheat existed a year ago too. As did all the methods. YouTube channels existed, Telegram channels existed, ChatGPT existed. Why do you think there are more "nowadays"?
What I have observed is that blogs about cheating and all these "cheater exposed" blogs come and go in waves. It's been like that for at least 7 years. Right now, we are slightly past the peak of a wave. What I think is that instead, people think there are more cheaters right now because they see more blogs about cheating right now.
Here you can see all problems C from CF rounds (I have no idea how to filter by division on clist)
Here are some stats from 2024 and 2023 (in both cases up to the beginning of August) respectively:
In 2024 there were:
In 2023 there were:
I didn't count Global, Div. 1 + Div. 2, or Div. 3/4 rounds, only Educational Div. 2 and pure Div. 2 rounds.
What stood out is that this summer there were barely any specialist+ level problems C in Div. 2 rounds, precisely one, to be exact: 1990C - Mad MAD Sum, I didn't count 1995C - Squaring because it's an outlier and not even a real C, since it's the 4th problem in the contest.
Hopefully there's someone who knows how to filter problems by division and is willing to automate this properly, then scrap the data and plot some fancy graphs for average/mean Div.2 C difficulty, AC to attempts, AC to total participants ratios etc. All the numbers are there, and if there is some funny trend going on, people are going to be able to see it with proper analysis (like back when Russian elections were proven to be improbable).
UPD: had to redo the count since simultaneous Div. 1 + 2 rounds don't have keys and indices for problems on clist (technical limitation, I guess).
contest:\(div. 2\) && short:C
: click meor without parentheses if you want to include Div. 1 + Div. 2 and Educational rounds:
contest:div. 2 && short:C
: click meI do think it's a shame that div2s have so little problems in the difficulty range of div2 participants. I think this encourages speed instead of problemsolving ability. I certainly remember hating contests with difficulty spreads like the last div2 when i was in the cyan/expert range.
In codeforces too many problems. So to creating good and original problem getting more harder. For this reason problems getting more weird, unpleasant. Maybe AI can solve this problem