Hello Codeforces!
For the past couple of years I have been developing a competitive programming platform that would aggregate solutions from different OJs. It was initially written for assigning tasks for my preparations (and some professors used it in our university for grading students in algorithmic courses).
Recently I have been developing a "ladders" feature, because I wanted to train and realized that this would be the best way to do it. Now, I am excited to say that I have decided to "go public" with this feature and invite you to try it out.
How it works
Do the steps below:
- Create an account at https://competitive.herokuapp.com
- Add your handles to your profile (Codeforces/Atcoder/etc.)
- Go to ladders and start solving problems
- When you start a task, a 2-hour timer starts; you have to solve the task in this time limit
- Tasks that are solved successfully are marked green, tasks that were unsolved are marked red
- You can also see a leaderboard with the best performances for the ladders
Tasks should be given according to your level, so if you are good, expect harder tasks to come up in your ladders.
Please don't grief
I will have a strict policy against griefers. If you do one of the following, you will probably get banned:
- Add a Codeforces/Atcoder/etc. account that is not yours
- Try to mess with the website in any way that would harm the data inside it
- Create any scripts that would mass-create tasks/groups/etc
- Exploit bugs of any sorts
- Please don't lie to yourself and cheat
If I see many of such attempts, I will discontinue the website. If you see someone do this, or get affected by it, please report it by completing the feedback form.
Other features of platform
I might come back here later to showcase some other nice features that I have been using on this platform. Until then, feel free to explore :). If you have ideas of interesting features, please let me know below :).
Problems?
Please let me know if you find any problems by completing the feedback form on the website, or by writing in the comments. The website is still in development, and there will be a lot of changes in the future.
I registered at the site and tried to log in, but it did not let me in and didn't even write an error message. What could be the reason?
UPD: You just have to enter your login and not your email. Yep, just right after the @ icon.
Same thing happened with me, logging in with the handle solved the problem. It should be fixed thought, at least they should show some error message.
Unfortunately unsuccessful logins don't come up with a message. I will make sure to add a message soon.
I found a bug: on csacademy it gave the link https://csacademy.com/contest/archive/task/contained-intervals even though it's not correct and https://csacademy.com/contest/interview-archive/task/contained-intervals/ is correct.
Thanks for letting me know! If you solve the problem correctly does it register on the website?
It registered it correctly
In Ladders, previously solved problems are appearing. It would be better if only unsolved problems are there on the ladder.
This is weird, as the algorithm that picks the task should only choose ones which haven't been solved yet. Could you give me more details about what the task was and your username?
https://codeforces.me/problemset/problem/1250/J this is the task and my username is amangoel1234. Also, it works only if we submit through the go to task link and not if we submit it from the problem section. This feature would also be helpful.
It also happened to me, my task2 was 380C and my username is Nson. I have solved it 3 years ago, maybe you don't get the full history.
Is something wrong with the tasks feature? I am just rated 380 and in the task, it gives me a problem to solve of rating 2100. I think its much higher level for me to solve now.
Unfortunately, the task recommender is still work in progress, and I've seen that it is particularly bad for beginners. The main reason is that it uses the internal difficulty ratings of the problems instead of the Codeforces one. I will try to see what possible solutions there are, and I am definitely open for ideas :).
It will be very good if the tasks difficulty will be some more from our rating . It will be not very hard for us . Also thanks for the platform bicsi !
For some reason, at least the first problem the system gives to me is clearly too easy (div2c problem, 1400 rating tag). Should I expect more difficult problems as later problems?
and the first problem that i got has a rating of 2200 :(
hey I wanted to ask how exactly does this tool assign tasks? I mean what is given priority the difficulty of task or the topics it covers?
The platform has an internal difficulty system (a not-so-great attempt at rating problems from all judges based on who solved them in this platform). You can see that each task has a number of points, roughly proportional to the expected difficulty. Sadly, this means that even moderately hard problems can get low ratings if they were solved by many users on the platform (as a homework, for example). However, this should at least in practice get better as more and more users enter the platform.
The platform looks at the hardest $$$N$$$ problems that you have ever solved, and picks a task whose difficulty is in that range. It doesn't look at topics yet, but it is one of my plans for the future.
I have a suggestion regarding problems rating: Let each user has a rating, and each problem has a rating, then when a user opens his ladder and tackles a problem, it's considered a match between the user and the problem, where the user wins iff he gets the problem within 2 hours, and both of the user's and the problem's ratings get updated accordingly.
Of course, this will have drawbacks, because some people may cheat and some people may not be serious enough and just skip the problem. But I think the larger the userbase, the more accurate the ratings will be. Also, some users can be considered trusted users somehow, and then only these users can do rated matches against problems. Also, for CF problems, you can let their initial rating equal to their CF difficulty rating.
Can I get some insights about the word " Personalized "?
Tasks should be given according to your level, so if you are good, expect harder tasks to come up in your ladders.
I just registered on your website, entered the handles of my profiles (of Codeforces, Atcoder, CSAcademy and Timus), went to the 'Ladders' section and the first problem I got is a Div-1 C 2300 rated problem
You can verify linked accounts through asking the user to submit a Compilation Error code in some specific problem, or changing his first name to a specified string, within a minute.
Why pages are loading slowly?
After you solve a problem you have to wait about a minute for site to register your solution. I think a button that manually runs check will help.
I think another option would be to check for updates more frequently (each 30s, for example) for users and problems that are currently running on the ladder. I would prefer to make extra effort for the platform to be as seamless as possible, rather than commit to having users manually clicking buttons for it to update :).
There is an error with problems like that. Url of statements is broken because of space symbol and when I solved this problem site said "Not tried yet".
It seems to me that the website managed to register submissions for that task, so it might not be that. One thing that I saw with Codeforces Gyms is that if you have Coack Mode activated while submitting for a task, your submission is not public (only you can see it). Check if that is not the case.
I changed the time limit of your task to 5h. Try to resubmit without coach mode (if you have it active), and let me know if that works :).
I resubmitted my solution without Coach Mode (it was active) and it worked. Thanks!
I think the problem recommendation algorithm is a bit messed up. I have never solved any problem >2000 rating till now but the first problem it recommended me was of 2900 rating.
It is showing an application error when I am trying to access the ladders. [edit]: Now it is working fine.
Due to the numerous requests, I have decided to make the algorithm easier for new users. If you want your harder tasks removed, please tell me your usernames on the platform as a reply to this comment (or leave a message at https://competitive.herokuapp.com/feedback/).
You might have noticed that some pages are slower to access. I will be working on solving that, by transitioning from the current architecture to a single-page app front end. This will hopefully make things smoother in the future, but it is not the easiest thing to do and might take a week or two.
One extra thing for new users: it might take a little bit of time from when you add your account on certain OJs to when your solved tasks are updated on the platform (mostly because some OJs don't provide means to get all submissions of some user). I will come up with a workaround in the future; however, at the current time, all your submissions should automatically appear on the website after at most one day.
After submitting the feedback, it is giving Internal Server Error :(
Login is not working! Every time I try to log in they redirect me to the same login page!
You need to log in using your username that you registered (not e-mail). Let me know if it works.
Can Codechef be added among the judges?
Can It so happen that the starting rating of problems can be predecided to a certain lvl... my starting problem was of 1200 rating on codeforces.
I recieved heroku logs error when I tried logging in.
Application error An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command heroku logs --tail
Your django admin is exposed to the internet, not a good practise I reckon
How much time does it take for the total points to be updated? For me it shows 5 tasks as solved. But corresponding points doesn't show up on my profile page.