Hello Codeforces!
I am excited to share with you my competitive programming innovation which successfully propelled me to master (2100+)! This is the ThemeCP training method, which stands for Themed Codeforces Progressions. Use at your discretion -- your Codeforces practice may get too effective and addictive!
Want to read this blog in document form (with images)? Check out the following Google Doc! https://tinyurl.com/themecp
What is ThemeCP?
ThemeCP is an experimental training system wherein users train on a perpetual ladder for ratings in [900, 3500]. The system is based on two-to-three-hour, four problem mashups with a common “theme,” ideally done every day. Read this post – you could be doing your first ThemeCP round just 15 minutes from now!
Steps
Manual Method
- Determine your initial level using the attached level sheet (here). For example, a 2300 rated coder starts at level 49.
- Create your ThemeCP at your level! Select a random topic among the topics listed here and four problems in that topic. The method you use isn’t very important. As for me, I use AC’s TLE bot (server invite link here) to select a random problem of the highest rating, select a random topic (among the random problem's tags, then considering only the listed topics), then select three more problems with that tag. For example, a level 49 mock would be 1700/1900/2100/2300.
- Begin your ThemeCP! The ThemeCP template can be found here. Solve the problems in order of difficulty!
- If you get an AK (4 of 4 solves), increment your level by 1. Otherwise, decrement your level by 1. Remember to upsolve the easiest problem you didn’t get during the mock! This is very important.
- Repeat from Step 2. Take a short break, and cherish the fact that you trained productively. You can also use the ThemeCP tracker here!
See the following YouTube video for a Level 45 (rating 2200) demonstration of ThemeCPs: https://www.youtube.com/watch?v=-OFNTD315-w
Automated Method (beta testing)
You can use Tenz1n's website which does all of the steps for you! Backward compatibility, i.e. uploading ThemeCP data from a Google Sheet made through the manual method, has been released.
Why does it work?
ThemeCP lets you train with problems in the entire difficulty range [rating-700, rating+100] you have a decent shot at solving. This balances difficulty and skill and keeps you in the "flow state", simulating your experience in an actual contest!
Even though you are training with problems slightly below your expected rating, not all problems of the same rating are equally challenging for you. In fact, your built-in strengths and weaknesses carry a +- 200 differential on any given problem! Therefore, this system exposes you to problems in the entire range you could plausibly solve in a contest.
Furthermore, ThemeCP’s high success rate, self-balancing at around 50%, keeps your motivation high. Failures increase your success rate (literally), and successes prove your improvement!
Efficacy
ThemeCP has been tested by over 100 Codeforces users, collectively completing over 600 ThemeCP rounds! ThemeCP has been used as the Philippine NOI's selection process for the country's year-round informatics training program. Based on the extensive data, we estimate that each ThemeCP round increases one's true Codeforces rating by approximately +5 for ratings below 1400 and +2 for ratings above 1900.
In addition, multiple IOI medalists have practiced extensively (10+ rounds) with ThemeCP with overwhelmingly positive response, citing it as a great way to get themselves to practice throughout busier school times.
Anecdotally, ThemeCP gave me a consistent training routine, and I believe that training is solely what caused my improvement. ThemeCP was simply the catalyst to training in greater amounts.
Inspiration
Around a year ago, I was reading self-improvement books to optimize my training/study habits and improve my lifestyle. One such book, called Atomic Habits, stuck with me. The ThemeCP mechanism draws inspiration from this New York Times bestseller. I incorporated three of four major ideals for a habit to be self-propagating: make it (1) attractive, (2) easy to continue, and (3) satisfying. The fourth ideal, making it clear to do, is up to you. Make ThemeCP your habit today!
Credit
The concept of ThemeCP was formulated in early 2022 and has since gone through multiple significant changes. The current version of ThemeCP was realized in early 2024.
I sincerely thank the following members of the Codeforces community for their contributions to the development of ThemeCP:
- Marinush for his troll blog that inspired the leveling up/down system of ThemeCP,
- Tenz1n for his amazing implementation of the ThemeCP mechanism,
- ACGN, Avuvos, drdilyor, Igor_Parfenov, MetalPower, Rideris, tolbi, vinhhocptit, and warmingcium for their feedback on ThemeCPs,
- arvindf232, galen_colin, and Geothermal for their esteemed veteran advice,
- DippleThree, Shisuko, verngutz, and wfe2017 for administering ThemeCP as part of the Philippine NOI's training program, and
- the countless NOI.PH highschoolers who did so many ThemeCPs!!! I can't tag all of you, but you contributed a LOT to the development of ThemeCPs!
(Bonus!) Website Implementation
My good friend Tenz1n has created a website implementation of the ThemeCP training method! It is a full implementation of the ThemeCP mechanism.
Check it out at https://themecp.vercel.app/ !
Feedback
Do you have any feedback for us? We would love constructive feedback on ways to improve the ThemeCP training method! Please comment what you like or dislike about ThemeCP, and if you have any suggestions, please comment them below!
Discord Link: https://discord.gg/MjsKXuE9S2
As one of pwned's trainers from his IOI days, the jump in skill from before and after he came up with and started doing ThemeCPs was insane!
Since I am still working on adding the option to upload old ThemeCP contest data, please join the ThemeCP discord server and send me (handle: 10zin7457) a public link to your ThemeCP google sheet!
Bro doin' the God's work
If you're not sure how to practice, I highly recommend this method! It helps you focus on specific topics with increasing difficulty, offering plenty of easy problems to enjoy and tougher ones to challenge you.
It also feels like a real contest with its own rating system, so you can track your progress and see improvements quickly. It's a great way to improve while having fun!
Login function on website is broken atm!
+1
Sorry for the problem, it should be working now.
I tried too, didn't work for me. Maybe I'm doing it wrong, just submitting some CE to the opened tab
R u still facing the problem?
https://codeforces.net/problemset/submission/1361/294653357 https://codeforces.net/problemset/submission/690/294596558 etc, still doesnt work :(. All CE's that I submit after the redirect
Did you wait for 1-minute and not hit refresh after submitting compilation error? If you are still facing the issue join the discord group and ping me there i will help you.
I did it just right now, and it worked perfectly for me
Not sure what's causing it but I tried on chrome two times and it didn't work. Switching to firefox did the job
It seems like login is not working.
Sorry for the problem it should be working now!
It still doesn't work.
Kindly join the discord group and ping me there and i will be able to help you.
It works now, thanks!
pwned orz, thanks for sharing this great resource with the community! Sounds like fun and can't wait to try it out.
Great idea and website. Initially I was skeptical of this, and I didn't have chance to try it since I didn't do competitive programming since march. But it looks very promising now, I will try it once I start CP again :)
As part of the NOI.PH community, ThemeCP is a must and is highly recommended for beginners who are new to competitive programming. Yes, ThemeCP gives out a better performance as you keep doing problems within your ThemeCP everyday! As penchick would say:
PS: Join NOI for penchick lore!!
pwned will it be paid oneday?
ThemeCP is inherently a system of training (which I shared in the blog), and anyone can do ThemeCPs without paying a single cent! Making a copy of the spreadsheets already makes it free to use.
Tenz1n is in charge of the website, and only he could say whether it will continue to be free.
For now am not planning to made it paid, it will be full free to use the website. But since i have to bear the charges to host my website, and suppose there are lot of traffics dialy and this charges goes too high I would make a donation system first rather than making it paid directly. But for now not planning to convert this into paid system.
in case the costs will go too high and donations won't cover them, is it possible to open source the site so that people can just localhost it?
yes definitly if the situation becomoes like that, will open source it.
I like this lol. It leverages the benefit of virtual contests and the desire to see more active adjustment of one's rating. I'll probably give it a shot.
bro what about choosing levels the level it suggests according to my rating cant give me required progress
The level suggestion of ThemeCP works on very simple principle and you may feel v. easy/hard. You can always explore the level sheet and choose a level which you think best fit for you.
i went from 1200 to 1500 peak using this to train
stuff's actually legit
Nice initiative! This seems like a pretty good way to practice--I did something fairly similar while I was training this year, and I like how this approach automatically calibrates to an appropriate difficulty.
It'd be nice to add options to tweak a few parameters: - Number of problems--four problems in two hours is a lot if the problems are close in difficulty level, and problems at the high end of your in-contest reach may take more like an hour each. I think doing this - Practicing individual topics is great when you're first starting to learn a new concept, but I think there's a lot of value in learning to approach problems without advance knowledge of the topic involved. It'd be helpful to have an option to choose problems with distinct topics. - I recommend biasing problem selection in favor of newer problems for more accurate difficulty estimates, higher problem quality, and more relevance to the current meta.
did you retire ?
Thank you for your advice, Geothermal! We will work to implement your suggested changes.
We are working on implementing dynamic time limits to the rounds at sufficiently high levels, with time limits increasing starting from rating ~2400, as 2 hours, all the way up to the highest ratings, where the time limit would be closer to 3 hours.
Update: Changes have been made, making ThemeCP rounds longer for users at level 55+ (rating 2450+)!
This is a very interesting idea, but there is a serious flaw in the formula.
Time to solve scales with the problem rating, and even being higher rated can only bring it down so much. For my level: 3125 = 2600/2700/2900/3100 being able to solve all four in 2 hours is at least a 3500 performance in an actual contest. A 35 minutes solve of a 3100 itself is worthy of 3500 performance.
I feel like the time limit must scale from 2400 onwards (in fact, it may begin scaling as early as 2100), which I suggest 2h at 2400 and then linearly scales to 3h at 3000. I cannot say for any higher rating but I feel like it should still increase, but not to as much. It is possible to not scale the time limit, focusing on speed, but that would imply you are only solving problems quite a bit below your rating (not necessarily bad, but this should not be the intention).
Alternatively, some balanced choices between speed/difficulty is possible that is assigned the same performance.
Thank you for your advice, arvindf232!
Initially, ThemeCP had time limits ranging from 75 minutes to 210 minutes, but at some point, I decided to make all of the levels have a time limit of 120 minutes. Your proposal for linearly increasing the time limit starting from rating ~2400 makes a lot of sense, and we will implement your proposed changes to ThemeCP.
Update: Changes have been made, making ThemeCP rounds longer for users at level 55+ (rating 2450+)!
I should mention that my suggestion of 3 hours is assuming the modern ratings (say, from round number 1000 onwards). If old problems is to be used, then this could mess up the estimation a litte bit.
From what I feel, 3 hours could be taken as the maximum time limit so no further scaling is necessary. I say this just from the intuitive feeling that implementation (in terms of length, which is what forces time spent, not complexity), does not increase much further from the point of 3000. I could be wrong though, but that would be found out by other user rated higer than me.
if you start to use that earlier.... such that your friends can suffer for less time and submit your contest earlier....
Tried for level 22, the system runs well and the problems turn out to be easy for me, and I AKed undoubtedly. I came up with some suggestions during the contest:
There should be an end button, when I AK the contest, you should let me end in advance.
The random theme seems to select a theme for the four problems, might there exists a selection which we can get four different themed problems?
Anyway, I love this system, and hope it get better! Thank you for such a great job!!!
1) Yes we’re implementing that when you hit 4AC the contest will end automatically.
2) You can choose the combine theme, then all your four problem will be all random.
Thank you for your feedback!
Oh, I've just mistaken the meaning of combine to be "combination math" qwq
Thank you for your quick reply, and I still have one question, how is the performance calculated? It seems so amazing!
No problem it seems the name is creating confusion will change that name.
For the performance calculations I don’t have well knowledge since it was created by pwned. So he will be able to ans your question.
OK~
And still, old problems' rating are typically higher than their real difficulties. Your system fatch problems randomly, so sometimes it provides me with a problem which should challange me but is very easy for me, for example, This problem was just provided to me as P4 for level 22.
This situation seems hard to deal with, but hope there could be an improvement on this aspect.
What's more, might the system fetch problems which I have ACed before?
No the systems cross verifies and chooses problem which you haven’t attempted at all.
Yes we have also noted of ThemeCP choosing very old problem. Will fix that issue really soon. Once’s fixed we’ll announce it.
make sure to join the discord group to provide feedback, report bug, and get updates made regarding the website.
oh and how should i select dp problems?
DP option is added in the theme selection menu. You can check it out!
thanks. Also , does it mostly give old questions of a given rating or are newer ones (of recent years and months) also considered? because last i tried the site, it took questions from 8-9 years old contests
Yes, we fixed the issue now. Now ThemeCP will select from newer problems.
By chance if you face some really old problem [it's rare though] let use know
Great Work! Tenz1n
You also could've added a date filter adjustable for user
currently we have done selection of problem with help of contestId, since higher the contestId newer the problem. So there's extremely less chance that you will get very old problem.
Ending of contest in advanced when you get all AC's is now implemented. You can check it out.
great initiative, thanks!
Amazing and nifty tool to create your own infinite penchick race!
Looks very interesting, I will try it
I saw several opinions, that solving problems by a topic is a bad decision, since in usual contests you don't know the topic. (Also, as I understood, you choose the topic before the round, and your personal interests will influence the choice (i.e. I love A and hate B, so I will more ofter choose A and avoid B).) I'm interesting in more opinions about it.
do you have a wolf as a pet?
I had a wolf. It weighted 2.5 kg, but it indeed imagined itself as a true wolf.
it says you choose a random topic. However, I agree, it would be nice if there was a random mode, which just gives problems without a theme
UPD: actually, you can just choose from random topics. good tool!
You have an option to choose mixed theme. In that you won’t know which topic and all problem tag will be mixed.
I tried the website but its not able to add my codeforces handle
Once you click add handle, you should get a clickable link that says "submit a compilation error".
You should then click it, submit a code that'll get a compilation error verdict and that should work.
Is this geometry in your pfp?
I believe this is an Octree. I remember seeing it in a database course.
Thanks. It worked
I hope you clicked the link that appeared when you entered your handle. The link redirects you to a codeforces problem for which you have to sumbit a compilation_error. If you did not do it, you should. If it still does not work, try a few times and do not refresh the page. It will add your handle.
It seems great. Will test it out.
Also, if possible I recommend implementing some sort of weight towards topics the participant is leass gpod at when selecting random topic (or add a weighted option). Also, an option for non topic based contest would be nice.
it has a "mixed" option which, i assume, just polls random problems
Correct
Yes you have have a mix option which will generate random problem of all topic.
My primary point is on some sort of weight for topics participant is less familiar with. But it's great that mixed option already exists.
R you suggesting that more weightage should be given towards selecting a theme that the user is less familiar with?
Yes. Because it's more important to practice those topics.
Ok NOTED. Yes this is also a good approach of selecting problem.
Thank you for your suggestion!
I think it's a slippery slope, because you can't really gauge which topics are unfamilliar to user just by solved problems,
For example, I may be not very strong at greedies, but since div2AB are usually just that, I will naturally have a lot of them solved. However, I am pretty good at dp, which is not a very common appearing concept anymore, so I will have less of them.
I guess you can try to check how much of them you've solved in the specific rating range, but not all topics made equal, still one might be harder, bla bla bla
This is amazing! The only downside I can think of is that later I will not be able to participate in virtual contests (because I already solved at least one problem). There is no real solution but this should be an upgrade over virtual contest anyway since you can focus on "meaningful" problems. I would just miss the "ranking comparison" aspect and rating tracking on Anytime
Since Anytime does not work for Atcoder, it would be amazing if ThemeCP could also work for AtCoder problems. Then I can do virtual contest on Codeforces and track performance + rating, while using themeCP on Atcoder for focused training. Not a request; just sharing my thoughts.
Thanks for creating and sharing this tool!
Yes thank you for the feedback.We can’t promise but yes definitely will see from that side also and discuss about it.
gud
You can always open source! I think community would love to contribute, myself included
Yes am planning on that, soon i will open source it. I will post the updates about it in the discord group.
I couldn't add my account Please can you help
Join the discord group and message me their.
Honestly an underrated factor of ThemeCP is teaching consistency, since being able to increase your level depends on your ability to not only solve the hardest problem in a set but to AK with probability 50% or above, which translates to needing ~70-85% success rate for the hardest problem based on the spread of the problem difficulties.
Personally as a person that has used ThemeCP before I can confirm that this helped me go from wildly inconsistent (and I mean spreads like +600/-400 based on the topic) to just being somewhat inconsistent (+400/-300), and hopefully soon(TM) just normal inconsistency (+200/-200).
Edit: Now that I think about it this is especially true in the sub-1600 range. You can solve 5 problems in a Div 3 and still not get expert performance, while a slightly hard Div2C can easily allow a person to get 1600+ performance. The former shows decent consistency while the latter is essentially just 1 problem in 90-100 minutes. Also, fast solves on earlier problems denies the need to solve the hardest problem you can solve since it wouldn't give you that many ranks thanks to point gain loss/penalty gain.
just shows how much more valuable ThemeCP is since grinding out contests specifically for rating doesn't give an accurate measurement of your consistency but rather slightly more on the speed aspect
Hey, OP
Is there any way we can add friends to the contest, i mean my friends are getting back to cp and practicing problems , could be better if we can share the site together that way it would be more fun and competitive
++ a way to see how we performed against others as well if that could be possible in near future.
Yp we have make note of this feature. Might come in the future.
ill try this out, thanks for making this. i had 1 query though, in the website implementation, whats the difference between "random" and "mixed" topics?
So Random selects a random theme for you just if you don't specifically want to pick theme.
Mixed means it's a combination of all topic like actual contest where you don't know what topic the problem is based on.
login function classed me as unrated?
Join the discord server and ping me there so i can solve your issue
As someone who did a lot of ThemeCPs, I feel it's an incredible way to practice. The sense of "progression" is valuable, and it motivates me to spend more time thinking about a problem instead of looking at the tutorial. I've also recommended it to my friends in Indonesia.
Even though I stopped doing ThemeCPs for a while (because I was practicing for OI back then), I think I'll start doing it again. I hope that everyone will try ThemeCP too!
I did one contest and it was a nice experience, but when I tried to make 2nd contest, even if I enter the contest level, it says "Please Select Contest Level". Help!
R you still facing the issue if yes join the discord server and ping me there.
Guys, whats wrong with google login???
Join the discord server and ping me there if you are facing issue with login and cf handle verification.
I haven't yet started (only registered) but already addicted :)
Btw, I want to suggest everyone also write some notes about each problem you solve (if it teaches you something new). This will help you remember new tricks better.
The website is sooo s1mple and beautiful. Tenz1n — css god.
Should I make a spreadsheet to keep the track of the problems which I couldn't solve?
You don't actually need to keep a separate spreadsheet as if you are not able to solve the problem simply going in the contest history which is in the profile section you will get the all problem link of all the contest you have given. So you can see from time section, if it's null that means you were not able to solve the problem so you can just click on the respective problem index and it will take you to the problem which you fail to solve.
yeah noticed it I gave the contest yesterday couldn't solve last problem so definitely helpful I will keep track
Thank You. Yes I was thinking of adding note section where you can add some note about the respective problem which you got to learn something new!
I am not able to add my CF handle. It always says failed verification. Am I doing something wrong?
Join the discord server and ping me there.
This is a very nice initiative, especially for newbies like me, Thank you for this !
i'm a relatively new compprogger and one of the "trainees" of pwned, and we are currently using the ThemeCP system for practicing. it's very useful! although i'm still on the lower levels, i learn a lot from these training sessions, and i think that even from a low rating like me, it helped me developed skills that i needed for my first actual contest!
Overall it looked good to me , but I want to add question of my choices in the contest. for example if i am practising with any CP sheet then i will add those questions in these contest but looks i dont have that option. can you provide it?
You can use vjudge for that
Right now that feature is not available. Will see if we can do something about it.
Now you can add problem according to your choice also. You can check it out.
I have one more question . I have seen expert CP'ers saying that you should always practice question of rating more than your current rating but in your theme cp the question i have to include in contests are all below my rating. So do i have practice questions above my rating sideways of giving theme cp contest? or only practicing by giving theme cp contest will be enough to boost my performance?
Yes it's true that you need to practice problem above your level. But doesn't mean any problem till -200 of your level problem's, you have 100% chance that you will be able to solve that problem in the contest. But with increasing level in ThemeCP you will get problem rated higher than your current level. Also if you want you can just explore the level_sheet and choose a level such that it contains higher problem rated.
Tenz1n seems like some problem when logging in
Acutally the server went down due to high traffic since it's a test deployment. That's why you are seeing these messages. But the server is up right now you can check it out.
Is it ok that I can't login and I can not see the sheet level ? PS : Thanks for this insane tool !
Sorry for the trouble, the server went down, now it should be working now. You can go check it out.
The site chose 1967B1 - Reverse Card (Easy Version) but I had already solved it as 1972D1 - Reverse Card (Easy Version).
Tenz1n May be you can add functionality, if the problem is "accepted" then don't pick it , pick another. This might solve this issue.
It's already available, link, but it's a bit wrong. System might've chosen it because of the problem is from Div2 with Div1 contest and I solved D1 in Div2 but didn't attempt in Div1 as B1.
Yes correct.
The main issue is if you solve that problem in other div contest and also present in other dig contest. Then the system might think you haven’t solve the problem. Like mostly happens in dig 1 and 2 combine contest
I am not able to add my handle on the theme cp website. Is anyone else facing this issue?
Join the discord server and ping me there
Login function on website seems to be broken
Currently the hosting platform itself is not performing properly. I got notification so it might affect the ThemeCP server also. Try again.
To fetch the Accepted result, after the starting time, it should calculate the time of the first AC. This is because submissions can show as 'In Queue' on Codeforces. For example, my second AC shows as 84 minutes due to this delay.
Can you add an option to choose a problem on the website? Maybe allow users to input a problem ID and set reroll as the default. Then, we can select our own problem, and the auto-level can be calculated like the sheet ?
Yes definitly will work on the timing issue.
For allowing user to select their own problem, might take bit time but yes am thinking of implementing that since i got req for this feature.
Now the solve time will be counted the time when you hit the submit button on the codeforces.
I wrote a contest today and intersected with a cf contest. All problems in ThemeCP site are marked as null. As I understand, during the contest cf turns off its API, so ThemeCP can't pull the status of the problem. Is there a way to "ask" it to pull status now?
Sorry for that but right now there is no solution for that to recover after the ThemeCP contest ends. Will note it and try to solve it. But yh just to make sure avoid giving themecp contest during codeforces contest for now that's the solution temporarily.
Can this theme random problems lastest?
Higher preference are given to select newer problem.
what if status doesn't change?
Do you mean codeforces submission status?
No, in codeforces i have accepted, but themeCP shows pending status. I tried to click the refresh button and wait for minute, but themeCP still shows pending
Can you join the discord and ping me there so that i can figure out the problem.
The initiative is really great. I was looking for that one "push" to finally restart CP and here it is great work pwned and thank you Tenz1n for the amazing website. One suggestion for the website is to add a feature where each of the four problems' rating is hidden.
Thank you!
Are you suggesting to hide the problem rating before or during the contest?
If we hide the rating before contest it would be hard for user to choose a correct level. But yes you are only selecting the level base on ThemeCP level suggestion, then we can hide the rating of the problem.
Yes exactly my point,levels can be shown by the rating they are aimed at and later the ratings can be hidden. One more thing, while i was attempting the contest, the verdict of accepted was coming correct but if i had a wrong answer verdict it did not reflect on the website. All in all it was a great experience and once again thank you for this
Yes until you get an AC on cf, The verdict on ThemeCP will show pending.
Good to hear that and you are most welcome!
Great work!
Suggestion:
About time calculation in Contest History (website) should count from submit time
For example:
(Time between 2 ACs is 5 minutes but due to long judging the time recorded was 11 mins)
Yes trying to work on it.
Thanks
Now you can check, it is now fixed as the time at which you submit the solution will be counted. If you still encountered some mis-calculated timing, join the discord server and ping me there.
the website, why can can choose problem B if i can't solve A. It's not similar contest on cf
Actually it's the limitation of how we calulate the performance. So until you can't solve problem A you can't solve problem B due to this limitation.
.
Thank you for the website, Tenz1n. However, I am not able to view the next problem without solving the current one. It would be better if we are be able to do it. Please see to it. thanks
Yes currently we have done that because the way our perf calculation is done.
But yes we're working on it to let user view next problem. Join discord to get to know when it's updated.
ThemeCp is a such a great resource. I have a little concern though. It mostly brings up the old problems. I would like to see more problems from recent contests. Old problems are fine but I wish you make a system that prioritizes more recent problems. Thank you in advance.
Yes actually i have updated about the problem selection and it shouldn't select very old problem. But if you're still encountering this issue alot kindly ping me in the discord and i will try to find some other solution. Right now we have given higher priority to choose newer problem compare to older problem.
Tenz1n, can you explain to me, at least in general terms, plz, how do you estimate the performance in particular contest? BTW, I don't know about how it's done in CF either.
Sorry if this question was answered before. I didn't notice that.
And thank you for the awesome ThemeCP website.
I don’t know much about the formula since it is designed by pwned. You can join the discord server ask him about the formula.
First of all, thanks for building this! I will use it for my training, it seems quite useful to get a nice problemset for daily training.
Fetching the contest submissions is broken now I think. I did a contest and it shows null as my ACs.
Sorry for the issue, Join the discord group and ping me there.
great
By this moment I wrote six trainings and I want to share some of my thoughts.
The site updates information only when pushing a button. At first I suspected, that it is just a button
write me accepted to next problem
, but a test showed, that it actually checks the submission on codeforces. Why doesn't it ask the status on its own once, for example, per one minute? Several times I simply forgot to push the button, and problems were left being null.The site lets us check the problem before starting the contest and regenerate the problem, if we are not satisfied. This is good, as I found two cases, where we should regenerate the problems. The first case was the ICPC problem, which I detected and regenerated it (because, usually, ICPC problems eat quite a lot of time). The second case was the problem, which caused the round to be unrated, which I didn't detected and suffered.
Just couple of my thoughts. I found, that div 3 problems are usually overrated (or maybe just mindless). I solved all of them pretty quickly, while non div 3 problems sometimes showed me surprises (during the last training the most difficult problem for me was the first one, and I know several other hard, but low-rated, problems). Also the system, where we need to solve all problems to win the round has the following problem: if you can't solve not last problem, you don't want to look at next problems, as you have already lost. But the solution to this problem is questionable.
THANK YOU FOR THE FEEDBACK.
1) Yes this is to make sure that if user is pre-opening the problem before starting the contest so that user can only focus on solving the problem but if user starts to solve problem randomly without realising that they need to solve in order. Then their perf calculation will be all wrong.
2) Yes the reroll option is to ensure that ThemeCP doesn't select some wierd problem [it has been taken care] but just to ensure letting user reroll if they doesn't like the problem.
3) The current scenario is the limitation of our perf calculation formula that we currently use, so you need to solve all problem in sequence in order to correctly calculate your perf. But in future we will try improve on it and allow user to do any problem in any order.
Once again thank you for the feedback.
so is it good or trash?
Thanks for sharing, and I found this really useful! No offense to the authors and developers of themeCP, but actually I created another website for fun, and it's open source. If you would like to use it or contribute, welcome! I will keep the mechanism up-to-date with themeCP. Thanks again.
What is the significance of selecting a topic? Won’t it be better to select problems randomly. Selecting a topic gives an hint on how to solve the problem.
You can select Random + Mixed topic also. Visit the website contest page. You can select your choice of domain you want.
ohh thanks
Please consider adding support for up solving tracking, thanks!
You can join the discord server add this in suggestion channel so that i can review and work on those. Actually if you go to contest history page you can find the non solved problem in a contest, but if you mean to keep an extra track record for upsolved problem after contest do mention in discord suggestion channel.
Oh man, this is so good. I just finished my first contest and I really enjoyed the level or problems, they were just the level of challenge that I need. Not too hard not too easy. I'm really excited to see how my journey will be after practicing everyday.
Thank you so much to pwned and all the contributors for building this
Glad you liked it! Do join the discord server.
Tenz1n, you've created a donate form for ThemeCP platform but, as far as I know, in Russia Razorpay and Paypal operations are suspended due to we all know what. Visa and Mastercard also left. And the russian community seems to be prevailing on the Codeforces platform. So I suggest you add another payment system like MIR or something. I would love to donate and, I suppose, many people from Russia too.
P.S. If anyone from Russia knows how to donate without these measures, plz, share this information.
Hello thank you for the suggestion can you please DM me on discord @10zin7457
How about crypto, is it still available.
Great initiative, going to start my cp journey soon and will definitely give it a try. Thanks for the website!
I've tried it a few times, and it's really helpful for practice!
Wow, the website is amazing!! It would be cool if there was a leaderboard of ThemeCP rank:)
Yes we also thought it would be really fun and motivating. But later we thought that people might abuse the system given that editorial and solution for all problem are easily available, making people easier to climb on leaderboard. So because of that we drop the idea of leaderboard of ThemeCP.
login is not working
Kindly join the discord group and ping me there (@10zin)
Since the problems are generated randomly, sometimes the problems come from Div4 and Div3 which are easier than Div2 and Div1 problems (even if they have the same rate), and sometimes the problems come from mirrors like NERC, which people may want to participate virtually in them.
So it would be great if you put a "Contest Source" filter, so that people can choose problems from div1, div2, Educational rounds, or a mix of them.
Thanks!
Yes thank you for the suggestion actually some other people also told to give some filteration option. I will work on it when i get time and until then the reroll option is given to you, so if you get any problem which you think it's not suitable for some rating you can reroll the problem again and it should give you a different problem. Thank You.
What is the difference between "mixed" and "random" options in contest page? Is it like... for "mixed" we will have 4 problems with different random tags, but for "random" we will have 4 problems on the same topic, but the exact topic will be selected randomly. Am I right?
Mixed : Just like CF contest where every problem can have combination of all the tags.
Random : When you are confused on choosing on which topic you want to give contest, you can let ThemeCP choose the contest tag for you and base on that tag the problem will be choosen.
Might there be an update on creating accounts? It's so inconvinient to log in with Google sometines, might e-mail register allowed for the following versions?
I thought it would be much longer procedure and also you need to enter a valid email. So the easiest option was google log in since already it's well validated by google. Are you facing issue in loggin in with google account?
as a matter of fact, it's very hard for chinese to register a google account :<
Ohh ok sorry i didn't thought of that. Ok then will see if i can add email register feature when i get some time.