Hi Coders,
The ACD Ladders (version 1) was welcomed by the community and got a much better response than what I anticipated. As nothing is perfect and everything can be improved hence we made some changes to the algorithm responsible for recommending the problems for the ladders! Before explaining the algorithm in detail, I would like to thank Monogon for his suggestions (although it came up in a random conversation but this helped improving the algorithm). so let's dive into the algorithm responsible for populating the problems!
Get all active users from codeforces (there were 61k users this time, this is almost a 50% increase in the data we used for v1)
Check the past 16 months data for all these users, this encompasses the problems they solved and the rating increase they saw in contests during this time period.
- For each of those users divide the time into 4 buckets of 4 months each, these buckets are individually analysed. Each bucket for each user is required to possess the following to be considered as valid buckets (A,B,C are predetermined thresholds)
- rating growth greater than A
- problems solved greater than B
- number of contests greater than C
Each valid bucket is then used for checking which all problems user has "upsolved" (contests solves are filtered out in this version of the algorithm). The upsolves are now given score according to the level at which the user was when he solved this problem (This is specifically because solving a 1000 rated problem might not add much value to a Master, but solving 2100-2500 probably would). The more the correlation b/w the solved problems and the current rating (skewed slightly towards right), the more is the score assigned. The score is now added to the problem.
Step 3 & 4 are executed for all the users!
There it is! I would like to thank manishjha91 and shubhamjr1729 for helping with the development and deployment! You can check out the website here. Feel free to join our discord community for the hard75 challenge, free teaching sessions and lot more! Please feel free to comment down your suggestions for further improvements! Happy coding!
Some more facts (you might wanna skip)
The ladders was visited 2,00,000+ times by coders!
It served 4000+ coders!
It takes 2-3 days to update the ladders, need to graciously ping codeforces for all the data.
UPDATE 1: The older version of the ladders can be accessed at link
It is really helpful, I have started using it, hoping to reach blue soon by using it. One more thing the invite link is showing invalid link for discord, can you check this again.
There's some problem with discord invite links I guess. It is a temporary issue and often happens. Can you please try again?
Also, the ladders are helpful as they tend to provide you with problems which have a better chance of teaching you things which would help you grow, however at the end of the day it has to be your hard work which would matter the most.
orzzz!
I personally loved the frequency option though you changed it to score. The version2 looks much better!!
since it's no longer "just" dependent on the frequency of solves but also on the comparative ratings of the users hence score made more sense now.
Just wanted to thank i_pranavmehta, manishjha91 and shubhamjr1729 involved in the development of this website for all their hard work. Honestly, I havent been able to use the version 1 of this as much as I would like to, however the problem revommendation always seemed nice and relevant. The new version 2 algorithm seems much better as well.
Thanks! It would be interesting to observe how the algorithm performs at GM-IGM level, as I've received good feedbacks from newbies to Internation master, but the upper territory lacks evidence.
Thanks a lot bro,
I am following this ladder from quite some time now, I can typically solve problems at a specific rating level on my own after working through 50-60 problems of that same rating. I have now started solving 1900 rated problem and hope so once I start solving D in DIV2, CM isn't that far.
have been following this ladder from a month and the growth is really good , indeed one of the best Problemset till now , will be waiting for the update :)
Plz add a feature where the UI looks like c2 ladder UI
why would you want to degrade the UI, any specific reason?
i_pranavmehta But Bhaiya for me in v2 it's showing old problems
The algorithm above doesn't guarantee that only new problems would be recommended, it just guarantees that you would get useful problems which might either be new or old.
There is one annoying thing related to the ACD Ladders. Sometimes the same problem is in div.1 and div.2 contests simultaneously with different problem ids. For example, 1827A is the same as 1828C. After solving 1827A I would like to see 1828C as solved too.
Thanks for reporting, but this is known. The reason is we fetch the submissions for any user from the CF api. CF api doesn't shows both the problems as solved even if they are identical but in different divisions.
Is there a way to solve this?
Yes! there actually is (we can do manual mapping on our servers), however this would complicate the logic and would make the website slow significantly, hence it has not been implemented.
First ladder helped me alot , excited to try updated one now.
what does "score" mean in acd?
If I solve all the problems in a ladder, do it update in the future. Or if I haven't solved a ladder yet, do it still update?
Does the 2nd version throughout the day? I opened it but i couldnt see any questions.