Блог пользователя -is-this-fft-

Автор -is-this-fft-, история, 4 года назад, По-английски

There was a blog today with a similar title, and although it was (I think, not really sure as I didn't get a good look) some kind of satire/joke blog, I wanted to post some serious advice about things I (don't) like to see when people are PMing me. However I decided that this wouldn't be in the spirit of the blog and decided to make a separate blog. And now that blog is deleted anyway.

While it's not a bad thing to write messages to more experienced users, most people who write me do things that make them very difficult to deal with. These are my opinions, but somewhy I feel that many reds will agree. Some things here feel silly to write because they are so obvious. But I'm only writing them because people regularly mess them up. $$$~$$$

Use punctuation and spelling.

There are some very simple rules that make your messages infinitely more readable. I find it especially strange when many of these messagers call me "sir", which is supposed to show respect, but then write like this. Is this how you write to someone you respect? Do you write to your teachers or boss like that?

Don't be pushy.

The worst case was when someone contacted me by email, and 20 minutes later sent another message "please reply ??". Think about it like this: you are writing someone who you don't know, who you don't have any previous agreement with and whose job is not to reply to you. I think you aren't automatically entitled to a reply at all. And although I try to reply to most messages, I think it's very rude to expect them to reply in less than a day or even two. Replying to you is not anyone's top priority.

Don't overstay your welcome.

A big reason why I'm wary of responding to PMs is that many people treat this as an invitation to ask 1000 more questions. Of course it's normal to have some followup questions and maybe write again another time, but there comes a point where you just being to annoy. You should understand when that moment comes and stop before.

Don't ask people to debug your code.

I will send the following template message if you get WA/RE:

Have you tried the following:

  • Write a very naive and simple solution to the problem (maybe exponential complexity) (if you can, you may also just copy someone else's solution)
  • Write a program to generate thousands of small (!) test cases
  • Using those two, find a test case where your program gives the wrong answer
  • Use print statements or a debugger to see where exactly your program does the wrong thing.

98% of WAs and REs can be resolved this way. I don't have time to delve into every code I'm sent, it's much harder to debug somebody else's code and being able to debug your own code is a valuable skill. It is also a very routine process that can be learned much faster than problem solving and algorithms.

And if you get TLE, make sure before writing that:

  • you know what complexity is and
  • you read/print input efficiently (sync_with_stdio and friends).

On that note, by the way: cin.tie(NULL) is useful but cout.tie(NULL) doesn't do anything.

Don't go in over your head

This section feels somewhat controversial to write, but I have some bad experience from the past with people who have asked help understanding some advanced tutorials. I accepted but every time it became evident after some time that the person did not yet have the capacity to understand this advanced algorithm or DS.

There is some amount of mathematical/algorithmical maturity needed to understand some complex things. (I don't think that you must have a high rating to understand, after all many top computer scientists haven't even heard of CP, but real understanding of simpler things is required). Moreover, you can not expect complex tutorials to hold a beginners hand and explain everything in such basic terms that anyone will understand. Mathematics (and the kind of CS we do here is basically mathematics) is cumulative and builds upon itself. Abstract stuff requires experience with concrete stuff, complex algorithms use many simple algorithms as subroutines. And you should be able to read some quite dry or terse mathematical text without someone showing you "what this intuitively means" at every little step.

About asking for help in a specific problem

If you ask for solutions or hints for some specific problem, be prepared to send a link. There are two reasons for this.

  1. I don't want you to help you cheat. Asking for solutions in an ongoing solution is cheating. And some of you may not realize it, but so is all other discussion: asking for hints, asking to debug and asking for "general ways to approach problems of this type" (whatever that means). By sending the link, you prove that you're not trying to do any of these things.
  2. I'm being blunt here, but a lot of you suck at retelling problems. For example, many beginners haven't developed a sense of what information is important. There are countless examples of CF blogs where some green asked for help in a seemingly impossible problem until finally it turns out that the author had left out a crucial detail. See below for more.

Of course, it is not always possible to send a problem link. If that is the case, I will probably wait a bit before answering — if the contest is short, there's a good chance that it will be over when I reply. And if you do retell the problem, keep in mind the following:

  • Try to write the problem as closely as in the original problem. If you are inexperienced, don't try to "simplify" the problem because there is a good chance you will fail. It's probably okay to remove the non-mathematical part of the problem like "Vanya found an array in the left pocket" but leave the mathematical part of the problem as it is.
  • Constraints are very important and a part of the problem. For example, there might be a problem where $$$n \le 10^3$$$ allows for a simple DP while $$$n \le 10^{18}$$$ requires some complex algorithms and a lot of creative thinking. Before I start thinking, I want to know whether you are satisfied with the simple DP (that takes me a few minutes) or need the complex algorithm (that might take a few days and may not exist at all).
    • This also goes for "hidden" constraints. If the problem says that there is a grid of lowercase English letters, don't say "there is a grid of some values" because the fact that there are only 26 distinct values may be important.
    • Small constraints are especially important! If $$$n \le 20$$$, we can use all kinds of exponential solutions that would be impossible otherwise.
    • Of course, there is some value for asking what the "best complexity" is. But thinking about that is a bigger investment in time. And even then it's a good idea to outline what you have already come up with.
  • If there is some strange condition in the problem, definitely include it. Problemsetters tend to not write random things and if there is something like that in the problem, there is a good chance that it is important.
  • If the time limit is not close to 2 seconds, that's also important information.

Speak in a language the receiver will understand

It's surprising but I have received a number of messages in languages I don't understand. Now of course you can't really know, but use common sense here. For example, my profile will tell you where I live. If I don't live anywhere near Bangladesh and don't even have a South Asian name, what is the probability that I can understand your message in what I think is Bengali? Same goes for any other language.

Thoughts some common questions

  • "Please give me some guidance" I have no idea what to answer. If you have some specific question, write.
  • "Should I sort by number of solves or by difficulty?" Please understand that there is no consensus or real science on "how CP should be practiced". Furthermore, such questions likely have very little effect on your practice.
  • "How many minutes before looking at the editorial" I will say "until you have solved it". I will also point out that many strong contestants have conflicting views and thus I think it's not the most important thing.
  • "Can you give me some resources" If you ask something specific, maybe I have something good. But 99% of the time I will just send links to train.usaco.org and cses.fi/book.
  • "The resources you sent are too hard" See the part about going in over your head. Also I don't know what you expected but some people expect resources where you don't need to think to understand. This is an unrealistic expectation.
  • "How do you approach problems like X" In high school algebra and calculus you often have well defined recipes that tell you how to solve every problem (of some specific kind) ever. I suspect some people think this applies to CP as well. It doesn't. Most of the time, there is no "standard first step" that you do, you just have to think. But if you have enough experience, many problems have solutions that become obvious immediately.
  • "Can you be my mentor" No.

In general I must say (this is about me though, not necessarily other reds) that I'm much more likely to be able to answer technical questions (specifics of some problem, solution, algorithm...) than "career" questions ("how to practice" and similar). If you have a question in the latter category, it may be a good idea to write to someone else.

Concluding words

Unfortunately I don't think this is going to have a big effect because many of these people who write PMs are beginners who aren't going to see this blog. It would be a really cool feature if I could set some kind of "status" that is visible at the "send message" panel.

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

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

I guess we know why this is becoming more common now. codeforces-users

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

    I even know someone who asked Gennady to suggest some good books on DSA ? XD

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

    Stop being racist. I admit Indians and Bangladeshi newbies ask a lot of unnecessary questions in general, still I don't see a reason to point it out and inadvertently publicly shame the countries.

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

      How is it being racist? If you don't acknowledge there is a problem how are you supposed to solve it?

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

        You have a point. I just didn't like how this is becoming a thing, that only Indians and Bangladeshi coders are the ones acting inappropriately. My judgement does have some bias, I'm sorry :)

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

          When did anyone say only Indians and Bangladeshi coders are acting inappropriately? If anyone says every Indian and Bangladeshi contestants (insert negative stereotype), that will be racist. But if we replace every by most or many, that statement may be true.

          As a matter of fact, most people who think of CP as an exam (notice how many of them use 'questions' instead of 'problems') where they can just cram for six months and ace it (and it's compulsory for job, hence many of them think it's ok to cheat / discuss just like they do in exams) are from these countries. Most people with these mentality ask weird questions / make weird requests. Add to that weird English which sometimes make their innocent questions / requests look annoying.

          AFAIK the culture of cheating / discussing in exams whenever possible is present nowhere else (at least the ratio of students who think it's ok to cheat / discuss if they have chance is higher than most countries).

          Feel free to correct me if you think I am misinformed.

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

            And who told you that there is a culture of cheating/discussing in exams present in India ? And what do you mean by weird English, there are different forms of English present across the globe ,and if our English doesn't matches with yours then its not our problem. And before making such remarks you should first have a look at the top coders from India.

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

              And who told you that there is a culture of cheating/discussing in exams present in India ?

              I have seen it with my own eyes, I have no formal proof, just personal experience. My personal experience suggests that the ratio of people who would cheat / discuss in exam when it's possible is higher here. I would love to be wrong about it.

              if our English doesn't matches with yours than its not our problem.

              It's your problem if your innocent question / request sounds rude / annoying to others (because of weird English) as you're not gonna get help.

              And before making such remarks you should first have a look at the top coders from India.

              That's why I have used most and many everywhere so that you can't accuse me of being racist against myself.

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

                First thing if you don't know much about our country you have no right to pass such statements on a global platform. And if the number of participants is so high from a country and if few people cheats you can't generalize it. Secondly you are contradicting yourself by saying innocent and rude together. Something that might be very common to you might be a new thing for someone else. If someone really wants to help he does so without going into the details of language. Not everyone thinks like you. And if you didn't wanted to sound a racist you should have used "some" and "few" instead of "most" and "many".

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

                  First thing if you don't know much about our country you have no right to pass such statements on a global platform.

                  So I have no right to express what I have observed? I have clearly stated it's just my personal experience.

                  if few people cheats you can't generalize it.

                  I think I haven't.

                  And if you didn't wanted to sound a racist you should have used some and few and not most and many.

                  It depends: 'most Indians cheat' — maybe racist, but 'ratio of thinking that cheating in exams (I am not talking of CP) is ok is higher here based on my personal experience' — is just my observation. Also, the difference between 'many' and 'few' is subjective. If 0.1% people cheat, you may think it's few, I think it's many.

                  Feel free to point to me some particular statements of mine that you found racist and how you would like to say it.

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

              Not gonna lie, but almost every blog of cheating I have seen on codeforces is from India or involves India.

              And why are you so proud of your English? The person is saying that most Indians use wrong phrases, like saying 'questions' instead of 'task' or 'problem'.

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

                The total of all such blogs will not even reach double digit ,and now compare it with the total number of participants from India. Secondly I am proud of my English because its mine, and I don't need a certificate from your side whether you like my English or not. Because if we use question instead of task or problem what makes you go so mad?

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

                  I am no one to judge your English proficiency.But as far a I know most OJs use "problems"or"tasks" to address and I think "question" is interrogative in sense, but using "problems" or "tasks" instead of "question" makes much more sense in my opinion.

                  PS:Sorry for my English.

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

              And who told you that there is a culture of cheating/discussing in exams present in India ?

              Mate lets be real, a lot of people here cheat lol, from lab exams to even some contest like Kickstart, heck my friends even cheated during TCS Codevita lmao

              I recently had a mentorship program where I had a webinar every few days, and then we had assessments based on that. Guess what? Fuckers created telegram groups to cheat for the assessments facepalms

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

            AFAIK the culture of cheating / discussing in exams whenever possible is present nowhere else

            Seriously, as far as you know, that "culture" is present nowhere else? oh boy, that culture is present everywhere.

            The comment is racist. The country from where most new coders come isn't as relevant as you think, imagine if there were a huge flood from coders from any other place, believe it or not, a similar phenomenon would happen.

            Yes, it would happen even with bad English, even if the new coders come from an English-speaking country, there may still be lots of grammatical errors due to these new coders being just kids in the first place.

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

              Seriously, as far as you know, that "culture" is present nowhere else? oh boy, that culture is present everywhere.

              That's why I added: I think the ratio of people who would cheat / discuss in exams if possible is higher here. I want to add: it's my personal experience, I can't show any formal proof of it, I thought it was clear by using AFAIK in my first comment.

              The comment is racist.

              Feel free to think whatever you want. I just expressed what I observed and I don't think I am so biased that my observation was altered.

              My friends directly called me selfish when I refused to show them my answers in exam (I have never seen anything from them). One of my friends directly called me selfish because I refused to hint him why his solution was hacked during an ongoing contest. AFAIK, the culture of shaming honest people that I personally expereienced is present nowhere else.

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

                it's my personal experience, I can't show any formal proof of it.

                I'm glad you added this, this makes the entire comment of "most Indians cheat etc etc" as valid as "most thugs are black" (if said by someone who, for example, has seen at most $$$n$$$ non-black thugs, and $$$n+1$$$ black thugs).

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

                  the entire comment of "most Indians cheat etc etc"

                  When did I say it? I have said that the ratio of students who think of cheating/discussing in exams as ok is higher here (compared to most countries) according to my personal experience. Please, don't change my words into something else.

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

            I think you're correct with the first two paragraphs, but I think the root of the problem is somewhere else.

            That culture of cheating is everywhere, not just India. There are people who are cheaters and people who are legit in every country. As far as I know, there are a lot of CPers coming from India because there's a lot of encouragement. Also AFAIK a lot of that encouragement is because of recruiting. If someone gets into CP because they want to be recruited, there's a much higher chance they won't take it seriously and will start cheating. This would also explain the exam mentality. Not to mention that if the legitimacy ratio is the same everywhere, the country with the most participants will have the most of that type of person.

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

              I know there are cheaters everywhere. But by 'culture of cheating', I meant the ratio of people who think cheating / discussing is fine in exams is quite high (again, I am not talking about CP as I don't have much personal experience regarding cheating in CP). That comment was made from my personal experiences:

              My classmates directly called me selfish when I refused to show them my answers in exam (I have never seen anything from them). One of my classmates directly called me selfish because I refused to hint him why his solution was hacked during an ongoing contest. AFAIK, the culture of shaming honest people that I personally expereienced is present nowhere else (at least absent from most countries, and I think one major reason behind this is Indian parent's high pressure for exam results). Again, this culture is mostly limited to exams. If similar experience happened with anyone from some other country, feel free to share.

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

                AFAIK, the culture of shaming honest people that I personally expereienced is present nowhere else

                Well, that is a side effect of cheating and it's also everywhere. It happens because cheaters try to coerce people into giving them answers.

              • »
                »
                »
                »
                »
                »
                »
                »
                4 года назад, # ^ |
                  Проголосовать: нравится +39 Проголосовать: не нравится
                My classmates directly called me selfish when I refused to show them my answers in exam

                Oh, my sweet summer child... There are places in the world where the outcome will be physical abuse and not just being called selfish.

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

            Even william lin say questions instead of problems(I noticed it in one of his video), so I just think it is because of what is prevalent here(south and south East Asia) and doesn't have anything to do with people's mentality.

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

              Pointing out one counterexample doesn't really refute his generalization. He said that most people who approach CP with an exam mentality say "question", not that all people who say "question" approach CP with an exam mentality.

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

                Ok my english is bad than bcz what I understood from this line (notice how many of them use 'questions' instead of 'problems') is he generalized that all who says 'questions' think of CP as exam :-( . Also I gave the example of william lin bcz one countercase is enough to refute a 'all' generalization XD.

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

                  I assure you, I didn't try to generalize at all. I just said what I observed / thought about many (not all / each / every) of them.

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

              Yeah, I'd say calling a problem "a question" isn't providing nearly as much of a reliable signal as saying "taking a test" instead of "participating in a contest" :)

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

            Only Indians and Bangladeshi coders are acting inappropriately.

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

            FWIW, I’ve heard that cheating is rampant in Chinese students studying at universities in the US. It has something to do with doing anything to get ahead as part of their culture. I haven’t seen much cheating from Chinese users in CP though.

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

      I was never racist. I merely shared some data. You interpreted what you wanted to from it.

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

        I guess we know why this is becoming more common now. If you consider yourself witty enough to insinuate certain connotations, then be bold enough to accept it as well!

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

          If you read this whole thread, you would know that user(69iq) interpreted user(Nk77)'s 'I guess we know...' as only Indian and Bangladeshi coders act inappropriately. It's user(69iq)'s fault if he interpreted it this way. user(Nk77) didn't necessarily mean that, he may have meant 'average Indian contestant asks more bad questions / makes more bad requests than average contestant from most countries'. Is it racist to say 'average Indian parent cares more about exam results than average parent from USA'? I think it's not, similarly I don't think it's racist to say 'average Indian contestant asks more bad questions / makes more bad requests than average contestant from most countries'. It maybe a wrong assumption, but not necessarily motivated from racial bias.

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

            I don't think it's racist to say 'average Indian contestant asks more bad questions / makes more bad requests than average contestant from most countries'.

            Yeah ok, I get it. I guess you're right, then! By the way, your argument goes exactly like that of Ben Shapiro's. By the way, this logic can be applied to many things, we can also use this logic to condemn hiring of women in most fields, because on an average, women do tend to resort to household work, after a particular amount of time in comparison to a guy. So, I guess, the wage gap is justified because of this strawman argument.

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

              I think it’s more like observing that women do more household work or observing that women are paid less, and not making any arguments towards one thing or another.

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

    Ma'am, Listen to me, Listen to me, Listen to me MAA'AM! WHY DID YOU REDEEM IT?!?!

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

    Nk77 Where did you get that page on cf?

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

I don't think that cout.tie(nullptr) is useless.

Example: 95460932 (without) and 95460948 (with). The difference is about 0.5 sec.

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

    It sounds very strange when you consider what tie does. Every input or output stream in C++ is tied to an ostream or to null. Tyig cin to null means it's not tied to cout anymore which can speed things up. But cout is generally already tied to null.

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

    The plot thickens: I copied your code 95462817 ­— (without) and 95462831 — (with) and the code with cout.tie was 300ms slower.

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

      The links to the submissions are links to codeforces non-existing blogs.

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

        Markup is stupid :D You can see the person above me made the same mistake too :P

        [submission:some number] is correct syntax to refer to a submission. But [text](url) is a link to url. So when I added "(with)" to the end it interpreted it as a link.

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

Yeah, I ended up deleting the blog because some people were taking it as non satirical, which I intended it to be.

Thanks for this, it's extremely helpful advice.

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

I would also like to add that I believe that you should learn from people that are better than you, but not much better. But don't misunderstand me here. If you are grey or green asking a random red is probably "an overkill" — I don't go to Gennady each time I have a question and you should not come to me. Reds might have a broader and better understanding of many things, however they don't have the capacity to answer all questions that whole Div2 part of community might have. If you are asking a person that is better but not much better (as a rule of thumb, let it be difference of ~300 in rating) then that person will likely be able to answer all reasonable questions you might have and moreover he might be able to explain that in terms that you are more likely to understand. If the difference in skill is too big than person that is explaining might just not comprehend problems that person that is asking might be facing since they are too obvious for him. But that doesn't apply to passive help, when you can learn from much better people without them even knowing since they might have designed a helpful and professional resource. For example from Errichto's lectures are nice and targeted to beginners. But you should probably still not ask him for unrelated questions through PM.

There are some conditions that make me much more likely to answer a question regarding some help through PM. One of them could be if I feel a personal bond with that person — if he is a friend of mine or e.g. one of my students that I coach on our uni. Another reason could be if you have a good reason to ask exactly me. For example if I have solved some problem in an original way and you ask me to explain my approach. Or if there is something worthy of attention in my code that you were just reading. Then I am more likely to answer that. But if you are asking about my solution which I feel is the same as intended one and the same as ones of hundreds of other people then I do not really feel you have that reason. And another favorable circumstance is if you are already skilled enough, so that you do not break rule I explained before. To sum up, if you are a grey that I don't know and you are asking me to explain you something easy, solve some easy problem or debug your code — I will probably just not respond even if that may feel rude.

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

I wouldn't recommend USACO training pages to anyone, they're incredibly outdated and flat-out tedious to approach. Perhaps you could send them a link to the CSES problemset to accompany CPH?

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

    USACO training pages are good since they force you to solve everything

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

      If I wanted to solve unnecessarily painful problems, I would just filter problems on Codeforces by implementation tag and do those :P I understand your point about forcing you to solve everything, but you could just do some CF ladders instead, although it's something I've never used personally. That's probably more useful than solving problems on a horrible interface designed in 1842. From what I know, even USACO participants don't even use it, though I've heard of some people speedrunning it a few months before camp selection in case it increases their chances in any way, at which point it isn't even useful for them.

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

        It is occassionally annoyingly painful, that is true. But it's not like it gives you only trivial tasks with annoying implementation ("trivial" from a beginner's point of view). And what TwentyOneHundredOrBust said makes it automatically better than everything else (for beginners, that is). I think it sends a message of "yes, you know everything required to solve this problem, now THINK" which is what a lot of greens need to hear I think.

        I don't care about the 1842 UI. Functionality is important. And I seriously think USACO training has given me a lot.

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

          Wouldn't forcing you to solve the problem be more of a discipline issue rather than a problem solving issue? And would it not be better for greys and greens to have additional help in the form of editorials, discussion and whatnot, rather than with a policy of no solutions force them to be hardstuck? At least with alternatives, you can make some form of progress rather than just a long wait which probably demotivated you more than you already are.

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

            The long wait is worth it. I started there and there was never any thinking of "omg should I read editorial, it's been 2 hours" and then seeing that I was cm away from the solution. It was just me and a bunch of interesting-looking problems. Editorials and discussion are just a way for noobs to get distracted from the real task of thinking.

            I remember, on one occasion, it took me two weeks to solve a problem (Camelot). I was running around screaming after I solved it.

            That was probably one of the happiest days of my life. It was even a better day than getting into my dream university.

            It's easy to improve when you're just looking at a bunch of fun problems and not "Omg i need to solve this to get higher rating or higher rank or job or prove my worth or whatever tf is going on in my life". Unfortunately it seems that it's become more of the latter than the former for me, so I had to stop (a real shame). But there's no doubt about it, the former is the attitude the USACO training pages convey. That's why they're the best.

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

          Pls send to https://usaco.guide/ instead thx

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

          Lol ur like the only person who seems to agree with me on this. I'd probably only recommend to someone who is just starting, and the second half is useless imo, but the beginning (2-3 chpts) forcing me to think was v helpful when I first started.

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

I write a post recently asking for help, it has got downvotes, can you please read and tell me where should I improve?

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

    my honest suggestion to your question " tell me where should I improve? ": Improve your rating.
    P.S.: Ratism is real on CF.
    Also the question you asked was stupid tbh. Nobody is interested(or have time) in reading 10 lines of story of your assignment.

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

Well these kind of blogs increased the number of people who asked me about some problem and now i see where they learn those grammer XD

»
4 года назад, # |
  Проголосовать: нравится -18 Проголосовать: не нравится

Hello sir, can you help me in a problem? I am getting WA and i have tried all 98% of what you mentioned, can you have a look at my code sir. Please sir?

»
4 года назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится

I think it’s should be added to rules of codeforces

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

Any blogs of rules for how to answer the questions?

Because mostly I have only one — good mood, whatever, whoever and however person asks. Is it rude?

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

Just a genuine thing, I would like to ask here — What maths should I study to become better at CP , what maths exactly and where can i find it. This is a genuine question. I know that some number theory is required and there are some topcoder blogs also but is there anything else that is required like linear algebra etc.

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

    Dear sir,

    There is my genuine answer for you. If you want to become better at CP, you should just solve more questions. If you can't solve question, you need to read an editorial. If you can't understand an editorial, solve easier questions. Easy and genuine as that.

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

I would love to hear people opinion's on "How many minutes before looking at the editorial" especially CM+ people :-) .

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

    For me it is something like 1 day.

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

    Never before 1.5 days.

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

    like 20 minutes lol

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

    Honestly depends on the problem. If I feel that I'm close to the solution or at least have an idea, I'll thonk more. If I have no idea how to approach the problem, I may just read the editorial after 5 minutes.

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

    Not CM+, but as someone who is a beginner at CP, I've been able to solve two 3500 rated questions (and several 3000+ problems) on my own by not giving up and thinking about them for several days straight.

    People sometimes give up fast, because they are like "let me try this X method which I think will solve the problem, oops nope it doesn't work so I am stuck". But there's like a ton of things to try even when you are stuck. There are a lot of other things you can try that don't directly necessarily help you solve the problem but will help with your understanding of the structure of the problem, or just understanding of cp in general.

    Some examples of this:

    1) Think about how this problem relates to other problems you have seen before. What sorts of methods work on other problems, what about this problem make those methods not work on this problem?

    2) Rethink what brute force methods there are for this problem. Many problems are actually just adding clever things on top of the brute force approach. You will notice that many editorials start off with, "a simple solution would be to do X, but it's too expensive, so because of ... we try this ... (something clever on top of X)... ". Think about what makes the brute force expensive, and what about this problem might make some parts of the brute force unnecessary.

    3) Rethink what sorts of things you have tried. Specifically, ask yourself, "What about the problem makes them not work?" and try to figure out what sorts of things you can do to avoid these problems that made the things you tried not work.

    4) Try more small examples, of course don't just stupidly trace through more random test cases. Pick small examples that you think will help with understanding of the problem. Maybe there is a really hard condition of the problem, you can try something that doesn't involve that condition, or has a simplified version of that condition.

    5) ... I'm sure there are other important things I haven't thought of at the moment

    6) Another personal thing I like to do is spending some time to appreciate the problem. It's hard to explain but it's like thinking how cool the problem is, like "woah we can actually do this?" Then you will be like now I really want to solve this problem.

    But of course, as I am still a noob, this might be really bad approach lol. In particular, it's probably REALLY bad if you want to get better at solving things in contests and improve in short term.

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

      orz

      1)All your points are absolutely correct and worth a blog on their own so that every beginner can see this as you have covered almost all scenarios.

      2)I also like to appreciate problems as sometimes I see some problems and think to myself wow can we really do this, this is really cool, and sometimes after reading editorial I might see the beauty of the problem/solution.

      3)What about the problems which require some algorithm/data structure that you did not knew at the time of solving that problem, how did you know when to stop trying and look at editorial?

      4)Also your are definitely master+ and you are just trolling people by saying you are noob XD.

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

        Re 3): oops I got lucky, basically all the hard problems I've attempted didn't require using advanced algorithm/data structure, like you only need to know basics things, just need to use them in a really good way. I'm not sure about when to give up. I just remember when I was solving some 2100 rated questions, I finally decided to give up because I didn't have confidence and thought it required some advanced algorithm/data structure, but then after reading the solution, I was very disappointed and wished I had spent more time on it.

        I'm still trying to figure this out myself because I don't really know advanced algorithm/data structures, but I figured I can always try searching them up while solving on my own instead of reading the editorial? But this is just personal, I get a bit attached to the hard problems I try, and personally it's just emotionally hard to read the editorials.

        Lots of people suggest to give up once you've made no progress for the past 1h though, so I'm sure that works as well. It probably doesn't matter. But you can also spend some time to make more progress by figuring out the "subproblem" of "why am I stuck", and a "subsubproblem" of "why can't I figure out why I am stuck" :P

        Re 4) I'm being serious, there are lots of low rated questions that I'm still stuck on. Just because I can solve some hard problems doesn't mean I can solve easier problems consistently still. Also you need to be fast in contests, and I can only solve things slowly.

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

      Very nice advice!

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

      6) Yeah, the "woah we can actually do this?" question may also lead to the fact that one didn't notice a crucial constraint (in my case it's usually written in bold in the statement), so this particular piece of advice helps in a wider range of situations!

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

      seqi orz

»
4 года назад, # |
  Проголосовать: нравится +37 Проголосовать: не нравится
  • Should I sort by number of solves or by difficulty?
  • How many minutes before looking at the editorial
  • How do you approach problems like X

These are really good questions but maybe too difficult for science. Nobody even knows what is an effective way to learn the basics of programming, and learning competitive programming (or problem solving in general) is a more complex process.

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

How to ask questions in PM: 99% of the time you don't need to ask questions in PM. Better write a good blog post with your questions (thoughtful questions and grammar are the key), or if it's about particular problem or contest, ask it in the contest's blog post. Don't forget to research to see if this question was already answered before.

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

    Blog posts aren't much help I guess. Sad

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

      You didn't even link the source of your problem. Nobody's going to answer a question if they think it's from an ongoing contest.

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

      There are several problems with that post:

      1) There is no link to the problem

      2) Lack of constraints

      3) Seems like statement is incomplete, it is not obvious if A and B are met only once in the grid or not. For example if the number of As and Bs are more than 1 each, I can't come up with a solution really fast(not sure if it exists under given constraints), otherwise I can.

      If you don't want waste your time to make the problem clear, I don't want to waste my time for clarifying and helping after that. That's my point of view. Sad.

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

        I didn't have the link myself. I did mention the constraints about the size of the grid, but forgot to mention about the count of A and B, which was a mistake on my part (sad) as I formed the problem statement myself from the idea that I was given. I'll update the statement and then some help, please!

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

          While you don't have the link, you still can specify the source of the problem. The fact that you haven't done it yet is a sign that the problem may be from an ongoing contest (or from somewhere else, we don't know).

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

~~ intended to be deleted ~~

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

    Let's say you commented something stupid and now u don't want it to stay anymore. How do I politely ask people to ignore ? becoz delete is not an option 2 minutes after commenting

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

If such people were eligible to understand this post, then they wouldn't send such questions.

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

Unfortunately I don't think this is going to have a big effect because many of these people who write PMs are beginners who aren't going to see this blog

In settings, you can set who can send you messages (like which rating range)

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

Brah

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

-

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

Auto comment: topic has been updated by -is-this-fft- (previous revision, new revision, compare).

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

There should something like "beginner queries". Where all these points are noted.

  1. What kind post you can make.

  2. What comments you should make.

  3. How to ask clarifications properly.

  4. How to PM someone properly.

  5. How to share your code so that it makes the reader's life easier.

This can be added in the top bar, maybe after that spamming and the shit posting will not go away completely,but it will clean some of the mess up I guess.

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

Auto comment: topic has been updated by -is-this-fft- (previous revision, new revision, compare).