-is-this-fft-'s blog

By -is-this-fft-, history, 7 weeks ago, In English

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.

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.

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.

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

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

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

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

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

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

    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.

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

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

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

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

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

          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.

          • »
            »
            »
            »
            »
            »
            7 weeks ago, # ^ |
            Rev. 3   Vote: I like it -110 Vote: I do not like it

            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.

            • »
              »
              »
              »
              »
              »
              »
              7 weeks ago, # ^ |
              Rev. 3   Vote: I like it +88 Vote: I do not like it

              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.

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

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

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

                  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.

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

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

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

                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?

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

                  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.

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

              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

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

            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.

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

              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.

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

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

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

                  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.

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

            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.

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

              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.

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

                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.

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

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

            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.

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

              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.

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

                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.

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

                  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.

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

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

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

            Only Indians and Bangladeshi coders are acting inappropriately.

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

            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.

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

            .

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

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

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

        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!

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

          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.

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

            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.

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

              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.

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

          I'm not responsible for connotations people come up with. Anyone who has been active on CF for more than a year will know what I mean(from the data).

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

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

        It would be great if you tell your thoughts when you shared "some data". What did you actually wanted to tell with the snapshot as first comment of the blog which people missed(apparently)?

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

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

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

    Nk77 Where did you get that page on cf?

»
7 weeks ago, # |
  Vote: I like it -28 Vote: I do not like it

Want to connect on Linkedin?

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

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

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

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

    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.

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

      Can you be my mentor? I have asked Scott Wu, Errichto, but they did not reply.

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

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

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

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

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

        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.

»
7 weeks ago, # |
  Vote: I like it +54 Vote: I do not like it

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.

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

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.

»
7 weeks ago, # |
  Vote: I like it +31 Vote: I do not like it

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?

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

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

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

      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.

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

        suneet antiorz

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

        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.

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

          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.

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

            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.

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

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

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

            nice

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

            Excellent resource ,this is what we all needed. All CP topics at one place with resources .

            Btw, is there a pdf for all of its notes . It will be much more useful as a book or print.

            Thank you very much

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

          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.

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

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

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

    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.

»
7 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

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

»
7 weeks ago, # |
  Vote: I like it -18 Vote: I do not like it

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?

»
7 weeks ago, # |
  Vote: I like it -6 Vote: I do not like it

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

»
7 weeks ago, # |
  Vote: I like it +32 Vote: I do not like it

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?

»
7 weeks ago, # |
  Vote: I like it -14 Vote: I do not like it

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.

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

    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.

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

      thank you sir, I will do that and become better.

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

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

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

    For me it is something like 1 day.

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

    Never before 1.5 days.

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

    like 20 minutes lol

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

    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.

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

    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.

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

      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.

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

        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.

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

      Very nice advice!

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

      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!

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

      seqi orz

»
7 weeks ago, # |
  Vote: I like it -21 Vote: I do not like it

The title of this blog should be HOW NOT TO ASK FOR HELP.

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

»
7 weeks ago, # |
  Vote: I like it +6 Vote: I do not like it

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.

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

    Blog posts aren't much help I guess. Sad

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

      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.

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

        I didn't have the problem link. Someone asked me this question and posting chat screenshots didn't seem like the right thing to do. Sorry for that, I should've mentioned that the problem isn't from a running contest. I googled it a lot but all I found were standard grid questions as I mentioned in the post.

    • »
      »
      »
      7 weeks ago, # ^ |
      Rev. 3   Vote: I like it +28 Vote: I do not like it

      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.

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

        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!

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

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

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

            A friend asked me this problem and it was probably from a hiring contest that was contested some days ago.

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

              Why would you expect your problem to be answered then...

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

                The contest won't run forever, I guess. Is there a deadline after the contest ends such that the problems become eligible to be asked here? The hiring contests are short contest, generally, and it was my first time writing a blog and I thought it should be apt posting it. Any help, whenever the community feels that the contest has definitely ended, will be great. Thanks a lot.

»
7 weeks ago, # |
Rev. 2   Vote: I like it -30 Vote: I do not like it

~~ intended to be deleted ~~

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

    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

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

      Just take the downvotes like a man and think twice the next time.

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

        sometimes even women code mate ! You forgot to think twice about all cases before you replied :P

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

          I didn't mean the term "man" literally, I used it as the opposite of a wimp. You may think of it as a woman, too.

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

      Isn't this your alt, Why do you even care about downvotes?

»
7 weeks ago, # |
  Vote: I like it +24 Vote: I do not like it

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

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

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)

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

    I don't mind them messaging me, I just want them to understand this first.

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

Brah

»
7 weeks ago, # |
Rev. 5   Vote: I like it -46 Vote: I do not like it

That makes me upset. If you have more advanced colors, it means you have greater ability and greater responsibility.

For ordinary people, your word of encouragement may help someone become a strong person in the future.

sorry, I lack confidence and I am an ordinary person.

遇到不好的问题

如果遇到了一个“不好的问题”,请先不要指责提问者本身对于题目过于模糊的描述,请尽量态度和善一点。

请不要使用语言谩骂与攻击提问者,一经发现,我们将取消你说话的权力,并可能会影响你最后的成绩。

你可以选择不回答,如果回复请尽量按照下面的原则进行回复:

对犯了新手级问题的同学请积极回复,一个真正的新手也许连怎么搜索都不知道(即使我们提供了关于搜索的攻略)。

对那些坦诚犯错之人请别对他们嘲讽或羞辱,耐心地指出他们的错误所在,并告知他们正确的方式才是好的回复。

如果提问者不能很好地描述清楚自己的问题,请耐心引导他们说出他们问题的关键。可能他们因此便学会了更多关于提问的知识,从而下次可以为论坛贡献更多有深度的问题,那样你的贡献是不可磨灭的。
  • »
    »
    7 weeks ago, # ^ |
      Vote: I like it +15 Vote: I do not like it

    I have nothing against answering low-level questions. Did you read the blog?

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

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

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

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.