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

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

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
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +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.

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +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

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится -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.

    • »
      »
      »
      11 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +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 ?

      • »
        »
        »
        »
        11 лет назад, скрыть # ^ |
        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.
        • »
          »
          »
          »
          »
          11 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +16 Проголосовать: не нравится

          LOL :D

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

          • »
            »
            »
            »
            »
            »
            11 лет назад, скрыть # ^ |
            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.

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

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

              • »
                »
                »
                »
                »
                »
                »
                »
                11 лет назад, скрыть # ^ |
                 
                Проголосовать: нравится 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.

              • »
                »
                »
                »
                »
                »
                »
                »
                11 лет назад, скрыть # ^ |
                 
                Проголосовать: нравится +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.

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, скрыть # ^ |
                   
                  Проголосовать: нравится 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!

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

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

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, скрыть # ^ |
                   
                  Проголосовать: нравится 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.

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

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

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

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

»
11 лет назад, скрыть # |
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".