pwned's blog

By pwned, 5 weeks ago, In English

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

  1. Determine your initial level using the attached level sheet (here). For example, a 2300 rated coder starts at level 49.
  2. 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.
  3. Begin your ThemeCP! The ThemeCP template can be found here. Solve the problems in order of difficulty!
  4. 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.
  5. 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:

(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

  • Vote: I like it
  • +574
  • Vote: I do not like it

»
5 weeks ago, # |
  Vote: I like it +26 Vote: I do not like it

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!

»
5 weeks ago, # |
  Vote: I like it +16 Vote: I do not like it

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!

»
5 weeks ago, # |
  Vote: I like it +19 Vote: I do not like it

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!

»
5 weeks ago, # |
  Vote: I like it +25 Vote: I do not like it

Login function on website is broken atm!

»
5 weeks ago, # |
  Vote: I like it +13 Vote: I do not like it

It seems like login is not working.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    Sorry for the problem it should be working now!

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      It still doesn't work.

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Kindly join the discord group and ping me there and i will be able to help you.

»
5 weeks ago, # |
  Vote: I like it +14 Vote: I do not like it

pwned orz, thanks for sharing this great resource with the community! Sounds like fun and can't wait to try it out.

»
5 weeks ago, # |
  Vote: I like it +17 Vote: I do not like it

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 :)

»
5 weeks ago, # |
Rev. 3   Vote: I like it +14 Vote: I do not like it

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!!

»
5 weeks ago, # |
  Vote: I like it +13 Vote: I do not like it

pwned will it be paid oneday?

  • »
    »
    5 weeks ago, # ^ |
    Rev. 2   Vote: I like it +5 Vote: I do not like it

    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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +43 Vote: I do not like it

    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.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it +1 Vote: I do not like it

      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?

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it +8 Vote: I do not like it

        yes definitly if the situation becomoes like that, will open source it.

»
5 weeks ago, # |
  Vote: I like it +5 Vote: I do not like 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.

  • »
    »
    12 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    bro what about choosing levels the level it suggests according to my rating cant give me required progress

    • »
      »
      »
      9 days ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

»
5 weeks ago, # |
  Vote: I like it +1 Vote: I do not like it

i went from 1200 to 1500 peak using this to train

stuff's actually legit

»
5 weeks ago, # |
  Vote: I like it +34 Vote: I do not like it

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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    did you retire ?

  • »
    »
    5 weeks ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    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+)!

»
5 weeks ago, # |
  Vote: I like it +21 Vote: I do not like it

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.

  • »
    »
    5 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    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+)!

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it +8 Vote: I do not like it

      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.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

if you start to use that earlier.... such that your friends can suffer for less time and submit your contest earlier....

»
5 weeks ago, # |
Rev. 2   Vote: I like it +8 Vote: I do not like it

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:

  1. There should be an end button, when I AK the contest, you should let me end in advance.

  2. 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!!!

  • »
    »
    5 weeks ago, # ^ |
    Rev. 2   Vote: I like it +8 Vote: I do not like it

    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!

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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!

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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.

        • »
          »
          »
          »
          »
          5 weeks ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          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?

          • »
            »
            »
            »
            »
            »
            5 weeks ago, # ^ |
            Rev. 2   Vote: I like it +11 Vote: I do not like it

            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.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      oh and how should i select dp problems?

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        DP option is added in the theme selection menu. You can check it out!

        • »
          »
          »
          »
          »
          5 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          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

          • »
            »
            »
            »
            »
            »
            5 weeks ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            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

            • »
              »
              »
              »
              »
              »
              »
              5 weeks ago, # ^ |
                Vote: I like it +1 Vote: I do not like it

              Great Work! Tenz1n

            • »
              »
              »
              »
              »
              »
              »
              5 weeks ago, # ^ |
                Vote: I like it 0 Vote: I do not like it

              You also could've added a date filter adjustable for user

              • »
                »
                »
                »
                »
                »
                »
                »
                5 weeks ago, # ^ |
                  Vote: I like it 0 Vote: I do not like it

                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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Ending of contest in advanced when you get all AC's is now implemented. You can check it out.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

great initiative, thanks!

»
5 weeks ago, # |
Rev. 2   Vote: I like it +9 Vote: I do not like it

Amazing and nifty tool to create your own infinite penchick race!

»
5 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    do you have a wolf as a pet?

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      I had a wolf. It weighted 2.5 kg, but it indeed imagined itself as a true wolf.

  • »
    »
    5 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    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!

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You have an option to choose mixed theme. In that you won’t know which topic and all problem tag will be mixed.

»
5 weeks ago, # |
  Vote: I like it +1 Vote: I do not like it

I tried the website but its not able to add my codeforces handle

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Is this geometry in your pfp?

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I believe this is an Octree. I remember seeing it in a database course.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Thanks. It worked

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    it has a "mixed" option which, i assume, just polls random problems

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes you have have a mix option which will generate random problem of all topic.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        R you suggesting that more weightage should be given towards selecting a theme that the user is less familiar with?

        • »
          »
          »
          »
          »
          5 weeks ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          Yes. Because it's more important to practice those topics.

          • »
            »
            »
            »
            »
            »
            5 weeks ago, # ^ |
              Vote: I like it +8 Vote: I do not like it

            Ok NOTED. Yes this is also a good approach of selecting problem.
            Thank you for your suggestion!

          • »
            »
            »
            »
            »
            »
            5 weeks ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            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

»
5 weeks ago, # |
  Vote: I like it +4 Vote: I do not like it

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!

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +4 Vote: I do not like it

    Yes thank you for the feedback.We can’t promise but yes definitely will see from that side also and discuss about it.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

gud

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

You can always open source! I think community would love to contribute, myself included

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes am planning on that, soon i will open source it. I will post the updates about it in the discord group.

»
5 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

I couldn't add my account Please can you help

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Join the discord group and message me their.

»
5 weeks ago, # |
Rev. 3   Vote: I like it +9 Vote: I do not like it

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

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    ++ a way to see how we performed against others as well if that could be possible in near future.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Yp we have make note of this feature. Might come in the future.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    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.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

login function classed me as unrated?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Join the discord server and ping me there so i can solve your issue

»
5 weeks ago, # |
  Vote: I like it +16 Vote: I do not like it

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!

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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!

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    R you still facing the issue if yes join the discord server and ping me there.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Guys, whats wrong with google login???

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Join the discord server and ping me there if you are facing issue with login and cf handle verification.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Should I make a spreadsheet to keep the track of the problems which I couldn't solve?

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

      • »
        »
        »
        »
        5 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        yeah noticed it I gave the contest yesterday couldn't solve last problem so definitely helpful I will keep track

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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!

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

I am not able to add my CF handle. It always says failed verification. Am I doing something wrong?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Join the discord server and ping me there.

»
5 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

This is a very nice initiative, especially for newbies like me, Thank you for this !

»
5 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

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!

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You can use vjudge for that

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Right now that feature is not available. Will see if we can do something about it.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Now you can add problem according to your choice also. You can check it out.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
5 weeks ago, # |
Rev. 3   Vote: I like it +5 Vote: I do not like it

Tenz1n seems like some problem when logging in

  • Request URL: themecp.up.railway.app/api/authenticate
  • Status Code: CORS error
  • Request URL: themecp.up.railway.app/api/level/*
  • Status Code: 502 Bad Gateway
  • Request URL: themecp.up.railway.app/api/get_token
  • Status Code: CORS error
  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Is it ok that I can't login and I can not see the sheet level ? PS : Thanks for this insane tool !

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Sorry for the trouble, the server went down, now it should be working now. You can go check it out.

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

The site chose 1967B1 - Reverse Card (Easy Version) but I had already solved it as 1972D1 - Reverse Card (Easy Version).

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Tenz1n May be you can add functionality, if the problem is "accepted" then don't pick it , pick another. This might solve this issue.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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

»
5 weeks ago, # |
  Vote: I like it +1 Vote: I do not like it

I am not able to add my handle on the theme cp website. Is anyone else facing this issue?

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Join the discord server and ping me there

»
5 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Login function on website seems to be broken

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Currently the hosting platform itself is not performing properly. I got notification so it might affect the ThemeCP server also. Try again.

»
5 weeks ago, # |
Rev. 2   Vote: I like it +1 Vote: I do not like it

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 ?

  • »
    »
    4 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Now the solve time will be counted the time when you hit the submit button on the codeforces.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Can this theme random problems lastest?

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Higher preference are given to select newer problem.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

what if status doesn't change?

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Do you mean codeforces submission status?

    • »
      »
      »
      4 weeks ago, # ^ |
      Rev. 3   Vote: I like it 0 Vote: I do not like it

      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

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Can you join the discord and ping me there so that i can figure out the problem.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Yes until you get an AC on cf, The verdict on ThemeCP will show pending.
        Good to hear that and you are most welcome!

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Great work!

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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)

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes trying to work on it.

    • »
      »
      »
      4 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Thanks

      • »
        »
        »
        »
        4 weeks ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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.

»
4 weeks ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

the website, why can can choose problem B if i can't solve A. It's not similar contest on cf

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Sorry for the issue, Join the discord group and ping me there.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

great

»
4 weeks ago, # |
Rev. 2   Vote: I like it +8 Vote: I do not like it

By this moment I wrote six trainings and I want to share some of my thoughts.

  1. 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.

  2. 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.

  3. 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.

  • »
    »
    4 weeks ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    so is it good or trash?

»
4 weeks ago, # |
Rev. 2   Vote: I like it +4 Vote: I do not like it

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.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    You can select Random + Mixed topic also. Visit the website contest page. You can select your choice of domain you want.

»
4 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Please consider adding support for up solving tracking, thanks!

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    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.

»
4 weeks ago, # |
  Vote: I like it +8 Vote: I do not like it

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

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Glad you liked it! Do join the discord server.

»
4 weeks ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Hello thank you for the suggestion can you please DM me on discord @10zin7457

  • »
    »
    4 weeks ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    How about crypto, is it still available.

»
3 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Great initiative, going to start my cp journey soon and will definitely give it a try. Thanks for the website!

»
12 days ago, # |
  Vote: I like it 0 Vote: I do not like it

I've tried it a few times, and it's really helpful for practice!

»
11 days ago, # |
  Vote: I like it 0 Vote: I do not like it

Wow, the website is amazing!! It would be cool if there was a leaderboard of ThemeCP rank:)

  • »
    »
    8 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
11 days ago, # |
  Vote: I like it 0 Vote: I do not like it

login is not working

  • »
    »
    8 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Kindly join the discord group and ping me there (@10zin)

»
5 days ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

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!

  • »
    »
    4 days ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    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.

»
5 days ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    4 days ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    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.

»
4 days ago, # |
  Vote: I like it 0 Vote: I do not like it

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?

  • »
    »
    4 days ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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?

    • »
      »
      »
      4 days ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      as a matter of fact, it's very hard for chinese to register a google account :<

      • »
        »
        »
        »
        4 days ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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.