pllk's blog

By pllk, history, 4 weeks ago, In English,

I'm glad to announce that we have today released a new version of the CSES Problem Set. It has many new problems and a new feature: hacking. You can access the problems here:

https://cses.fi/problemset/

New problems

The problem set has now 200 problems — compared to the original problem set, there are over 100 new problems.

The problems are now divided into sections according to their topics, so it is easier to practice a specific technique. The last section contains more difficult problems that require creative problem solving skills.

Hacking

There is a new feature: you can now hack submissions and improve the quality of tests.

After solving a problem, you can view the solutions by other users and try to hack them by giving a test case where the solution fails. If your hack is successful, the new test case will be added to the test data and all submissions will be regraded.

Future plans

In the future, we will add many more problems, and our goal is to create a comprehensive problem set that has 1000 high quality problems. We will also gradually add model solutions that describe different ways on how to approach the problems.

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

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

There still seems to be some inconsistency between my profile and the leaderboard. The former shows 51/200 solved tasks, while the leaderboard only shows 50/200. Can you please look into this?

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

    Thank you for reporting this, this should be fixed now.

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

      I believe the error was caused due to the deletion of the Longest Border problem, but out of curiosity, is there any way that we can see problem statements that were archived, such as the aforementioned one?

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

        You are right, this problem was replaced by Finding Borders which is a more general better problem. Sometimes such replacements are needed to improve the quality of the problem set.

        At the moment there is no way to see archived problem statements or submissions, but it would indeed be interesting to see them, and this may become possible in the future.

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

Don't you hacking can be misused to make website judging too slow by adding lots of test data. I feel some limit like 500 or 1000 should be put on maxtests as per the capability of website.

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

    I believe the hacking will work nicely. However, we will monitor the situation and add restrictions if something unexpected happens.

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

Are you also planning to upgrade to the C++17 version? I feel it is a nice feature that is lacking currently.

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

    Good idea, we will add C++17 support in the near future.

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

      Thanks!

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

        Now both C++11 and C++17 are available, you can select the standard when submitting a code.

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

While I appreciate the effort, I don't like the fact that there are so many platforms and a lot of problems are repeated. It means a lot of time was wasted.

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

    i don't think that the time wasted CSES had a very good problems and well organized and easy to use !.

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

    Well, there are also many books about programming, many songs about love, etc. :)

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

      Books teach in a bit different way. Many problems are exactly the same. A lot of setters spend time preparing the same thing including tests.

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

        Let's assume that I'm planning to use 1,000 hours to further improve the CSES Problem Set. If this time will be wasted, what should I do instead of that?

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

          I don't like the idea of creating more problem sets, that's all. My suggestion then would be: spend 1000 hours to put links to some problems in your book. Can be from CF.

          That being said, doing anything for the community is great.

          EDIT: I have a better idea. It would be even better to create editorials for existing problems instead of adding new ones. Then it's at least a good place to practice.

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

            Creating editorials is definitely a good idea, but I think it is more important to first add some more problems.

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

        Why he should find problems from some obscure sites, instead of just making it?

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

          Because it saves time. How is cses.fi less obscure than CF? I actually don't want to create accounts in 20 platforms.

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

            I'm not sure if it would actually save time. It may be very difficult or impossible to find a specific problem from some other site.

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

            Finding or remembering things out of OJs may be harder than you think. If it was easy, BOJ 1659 wouldn’t appear in IOI :p

            And I completely understand that pllk wants to control test quality and user experience.

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

              He wants to do it and so do tens of other platforms.

              There should be one system with thousands of problems. You could choose any subset of problems and recommend it to your students. A good start would be if everybody switched to making problems in Polygon.

              Test quality? I'm almost sure every platform would allow him to improve the test data. I don't get the point about user experience. I don't think that everybody should create their own platform because they can control user experience better.

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

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

                  Exactly. That's why I don't like new platforms. And note that I don't propose starting a new one. But everybody should use Polygon because it's superior to anything else.

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

                  It's possible that he used Polygon to create problems but then upload to CSES =).

                  Anw there are cases where you may want to have full control of the problems by adding to your own OJ, e.g. univ courses where you don't want students to copy-paste code from other students; or you want to use your own plagiarism checker.

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

      many books about programming, many songs about love, etc

      Are you serious?

      That many songs are about love, but their lyrics are not the same. That many songs about love don't sound the same.

      Programming is quite wide thing. That many books are about programming, but not all books cover the very same topics. Also different authors describe that topics in different ways. Their books are not the same. A reader finds some books more clear, other books less clear.

      But setting the EXACT SAME problem in different platforms has no use.

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

        I wouldn't focus too much on individual problems. A single problem is nothing special, but a problem set can be a work of art.

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

          What are you talking about?

          Errichto told his point of view. You answered him with your arguments about many books about programming, many songs about love, etc. I showed your arguments are poor. I didn't interfere directly in your dispute with Errichto.
          You wouldn't focus too much on individual problems than don't focus! Did I tell anything against it?

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

        I see my comment is misunderstood, so I'll tell again. pllk, thank you for your problemset, I told nothing against it, I just told that many books about programming and many songs about love have nothing to do with repeated problems and comparing them makes little sense.

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

    Even though the problemset is great but He could have made contests like this instead: https://codeforces.com/group/hK6hgc8x94/contests It's easier if problems are taken such that the solutions already exists. I was thinking about solving all of them but now I face this problem of not getting any solution.

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

But is it rated? Don't downvote please, it's my birthday tomorrow

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

Would it be possible to add support for PyPy? I generally enjoy solving tasks in python, especially codegolfing with it, but with the 1 s TL it is many times really hard / impossible to get cpython to pass.

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

    We discussed this with our team and consider adding PyPy support, more information will follow.

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

    PyPy is now available in CSES. You can select the interpreter (CPython or PyPy) when submitting a code.

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

On the task Sum of Four Values, I think the judge may be wrong... specifically, the output section asks for any solution, but I think the judge checks whether the provided answer is identical to its own.

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

    Thanks, you are right. This is now fixed.

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

The statement for Grid Paths says "from the upper-left square to the lower-right square," but the diagram and test data match "from the upper-left square to the lower-left square."

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

    Thanks, the statement was not correct. This is now fixed.

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

Its really helpful now to filter the problems based on tags. Maybe you can add some more problems on DP :)

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

you can now hack submissions and improve the quality of tests

when you're lazy to make strong tests

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

    Laziness is surely one factor, but it is often surprisingly difficult to create good tests before seeing what people will submit :)

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

There seems to be an issue with Palindrome Reorder. I can see an AC submission which just prints the input back without forming a palindrome.

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

    You are right, the grader has now been fixed and all submissions have been regraded. Thanks!

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

Can't something be done for the multiplier of some slower languages? 50% of my Java Solutions get TLE.

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

    I think it's still fairer that every language has the same limits. It would be really difficult to decide what the multipliers would be.

    You should be able to solve at least most of the problems in Java if you use efficient I/O and avoid creating lots of objects etc.

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

it's tough for learners like us. how do we know the solution if we cant solve it. there's no point not knowing the solution.

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

Is there a way to reset password? I'm pretty sure I have an account, but can't recall the password.

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

If you provide solutions, It would be great.

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

Is there any way to hide the tags shown on the website? I want to try the problems on my own first without any hints.

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

    Do you mean the section titles? At the moment it is not possible to hide them, but thanks for suggesting this. It is true that they may provide hints.

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

Great problem set! You should start a discussion forum for CSES. It's tough to find solution for the problems when I get stuck. What do you suggest?

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

Can you please have code of others viewable ?

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

    It wouldn't be pleasant. As there is a statistics of the users which sorts them by solved problems, it motivates people to solve more problems to achieve higher places. The simplest example is me; if there weren't any statistics/ranking, I wouldn't be solving them.

    If you stuck, you could always post a blog about the problem, but I suggest you think about it for some good time. Don't forget that googling the problem is a thing to do before posting a blog, or else you will probably end up with having several downvotes.

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

In the problem Nearest Smaller Values, according to the constraints $$$1 \leq x_i \leq 10^9$$$ but in test cases 4, 5, 9 and 10 some $$$x_i$$$ are negative.

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

    Thank you for the report! The tests will be fixed soon.

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

I'm pretty sure the checker for Labyrinth is wrong. Currently the solve count is 0/109.

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

    You are right, thanks! It is now fixed and all submissions will be re-evaluated soon.

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

The statement for Monsters says $$$1 \leq n,m \leq 2500$$$, but when i try making n=1001 i get invalid input(the same test with n=1000 and the last line removed doesn't get invalid input)...

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

    Also for monsters, my output is exactly the same as the expected one for test 10, but it fails with wa.

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

      This has now been fixed, thanks!

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

    The statement had incorrect bounds — the upper bound has to be 1000. Thanks!

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

Can you please add editorials as soon as possible.

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

The model solution for High Score seems to be wrong; everyone has WA now.

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

    The task statement says, you may assume its always possible to get from 1 to n, which is not the case with the hack someone put in

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

      Oh, i didn't notice that. In that case, the validator isn't correct.

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

      This is now fixed, thanks!

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

Hey, the latex for these are not properly formatted (e.g. this one)