Блог пользователя kingofnumbers

Автор kingofnumbers, история, 9 лет назад, По-английски

sometimes during a contest when I think a problem have tricky test case(s) I go to my room and start searching for solutions which doesn't handle those tricky cases but sometimes after I read about more than 15 codes I still can't find even single solution which doesn't handle one of these tricky cases then I start to think: am I unlucky because I am in a room where all its contestants are very careful for tricky cases?

but then after the contest I discover that all such test cases exist in the pretest so if a solution didn't handle one of them it will not pass the pretests, so I just realized that I wasted my time while reading the solutions.

that's why I want to suggest a new feature in codeforces round rules that makes us able to submit solutions to a problem even after locking it so we can submit solutions that doesn't handle those tricky cases so if it passed then we know those tricky cases doesn't exist in the pretests , ofcourse those submissions doesn't affect our points and only last solution submitted before locking is judged in the system testing.

  • Проголосовать: нравится
  • +78
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +42 Проголосовать: не нравится

Instead, why not make the pretests visible just like they are in practice. Ofcourse you can only see them after passing pretests and locking the problem.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +26 Проголосовать: не нравится

    That is a good idea , but I feel this will allow for easier cheats e.g. what if one asked his friend who already passed a problem: what is the pretest #6 I am stuck at it.

    or maybe creating multiple accounts and submitting TLE solutions with the fake account to open the pretests? (note sometimes TLE algorithms might pass the pretests) or maybe there's other ways of cheating.

    I think allowing for submitting solutions is safer

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +19 Проголосовать: не нравится

      haha... If someone want to cheat then why would he need pretests ,after locking he can directly submit other's solution with his second account...

      • »
        »
        »
        »
        9 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится -6 Проголосовать: не нравится

        I meant in case one has a solution which fails on some pretest and he doesn't know why then he submit bruteforce TLE solution with second account to reveal that test which his main solution is failing on

        after all now I think my idea is just a bad idea and can't be applied

        • »
          »
          »
          »
          »
          9 лет назад, # ^ |
            Проголосовать: нравится -8 Проголосовать: не нравится

          How exactly do u think that brute force tle solution will pass pretests? And well cheating with fake accounts and help of other persons are things which is very difficult to stop.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится -14 Проголосовать: не нравится

    That's not good idea. You should understand what pretests your code has overcome. Otherwise you are less thinking. I'd like to think more, than see all pretests.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      didn't u see what i wrote? Show pretests only after locking the problem ! What will you do with pretests after locking the problem ?

      • »
        »
        »
        »
        9 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
        1. You can find that your solution is incorrect.
        2. It will become easier to hack others — less thinking.
        3. You can find ideas for hack, less think by yourself.
        • »
          »
          »
          »
          »
          9 лет назад, # ^ |
            Проголосовать: нравится +16 Проголосовать: не нравится

          LOL :D

          you either don't know what locking a solution means or you don't know what a pretests means

          • »
            »
            »
            »
            »
            »
            9 лет назад, # ^ |
            Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

            Imagine: user m.Sina writes his solution of #306 div.2 A — 11425971, and it overcomes pretests. Then he locks that submission, and in your case — watchs the pretests. He sees the pretest #4. This pretest can serve him idea that he made a mistake. If so, he knows that he will gain 0 pts of that problem (and interactively he can change his strategy for gaining points for having better overall standing). And after he understands his mistake (which will be on test 17 after the end of contest), he can try to find similar mistakes in other's solutions.

            • »
              »
              »
              »
              »
              »
              »
              9 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится +19 Проголосовать: не нравится

              How the pretest #4 will help him know that he has a mistake while his solution passed that pretest?

              • »
                »
                »
                »
                »
                »
                »
                »
                9 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                Read again: it can serve an idea, it doesn't make him know. Because pretest #4 has similarity to test #17, which catches his mistake. it can be that user didn't thought about such pretests (#4 and #17), but passed the first. After seeng the first, he can realize (if he think more about it) that he has a mistake.

              • »
                »
                »
                »
                »
                »
                »
                »
                9 лет назад, # ^ |
                  Проголосовать: нравится +3 Проголосовать: не нравится

                Or imagine, if one of the pretest would be "ABXABXABX" and contestant has square complexity for string where are lots of "AB" and no "BA". Then it could serve an idea that if the test would be longer (#8) — it will cause TLE for his solution.

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  9 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  so what will u do after seeing that your code is going to fail. You have already locked the problem and you cant change it anymore!

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  9 лет назад, # ^ |
                    Проголосовать: нравится +5 Проголосовать: не нравится

                  "And after he understands his mistake, he can try to find similar mistakes in other's solutions."

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  9 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  Suppose you are noob, who can solve problem A but B is usually difficult to you. Then after you solved problem A, you see that very much noobs solved A too, but faster than you. Then you have two strategies: try to gain +100 points from successful hack and increase your position very much, or try to solve B, for more better place. If you lock A and understand that you failed it, you know, that you should go to solve B instead of trying to hack on A. If you don't know, you either still hack either solve B.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    Indeed. I always thought it would be good if we could see pretests after locking the problem. Codeforces should really consider this.

»
9 лет назад, # |
  Проголосовать: нравится +52 Проголосовать: не нравится

That is a very good point, I also experienced this feeling and think that this is an important issue.

»
9 лет назад, # |
Rev. 3   Проголосовать: нравится -20 Проголосовать: не нравится

I think hacking is "all about to see if there is a bug in the code(may be wrong code or solution ) and not on well we generate tricky test cases".

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +35 Проголосовать: не нравится

    most cases when a solution is hacked it is because it didn't handle tricky cases, not because there is a bug.

    but sometimes all tricky cases exist on the pretests and that causes me to waste time when I try to find a solution to hack

    • »
      »
      »
      9 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится -30 Проголосовать: не нравится

      There is a bug in code that's why it doesn't pass as per you say "tricky test cases". So your code failed because it had a bug and it didn't failed because of a test case(which u might be tricky for some and not tricky for others). When u don't pass any test case it is a BUG that resides in your code.. IT's All about "perception". How u look at it,what i have seen, people just use a single tricky test Case and without even trying to look at the code they try to hack it and get Successful.

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        what i have seen, people just use a single tricky test Case and without even trying to look at the code they try to hack it and get Successful.

        I don't how you have seen that, but trying to hack all codes in your room without reading the code is definitely not a good strategy...