When submitting a solution in C++, please select either C++14 (GCC 6-32) or C++17 (GCC 7-32) as your compiler. ×

MikeMirzayanov's blog

By MikeMirzayanov, 4 years ago, In English

Hello Codeforces!

In February, in the Russian-language interface, we announced a new educational subsection of the website. It's time to go international!

I am pleased to invite you to test the new section, which so far has the working title EDU. I hope that someday EDU will become a real educational hub for fans of programming competitions. It will be great to have in one place the collected educational content with text and video materials, with selected thematic problems.

At the moment, its functionality is still under development, and here is the current progress and β-testing preview. Write your comments and suggestions in the comments here.

Go to EDU →

So far, only a pilot course with the first lesson "Suffix Array" has been presented to your attention. The plans include expanding both the functionality of the section and filling it with new content.

Russian version already contains more lessons. At the moment, it is important for us to get the first feedback from international users. Many thanks to Pavel Mavrin (pashka) for preparing the first English lesson. Please support pashka to motivate him to translate more lessons!

I hope that in the future, using the materials in this section, you will be able to gain knowledge on an extensive set of topics that are used in contests and olympiads. According to the current plan, a group of ITMO lecturers and students will be engaged in a pilot course, a little later we will consider the possibility of opening the possibility of creating classes for a wider audience.

Thanks to ITMO University for the idea and support for the implementation of this initiative!

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

| Write comment?
»
4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

Thanks

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

    Someone should invite vovuh to be a CF educator. At this point I feel like he has earned it...

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

      You are doing good as well through your youtube channel.;)

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

      IMO not just vovuh but every red or orange coder should be a CF educator.

      Reason 1: You people have intense knowledge and experience of algorithms and stuff related to competitive programming.

      Reason 2: It motivates people to become like them when they watch them teach.

      Reason 3: Some of the coders have a youtube channel where they provide great content. But it's not known to every noob (like me). CF is a common platform that is known to everyone and having all good content at a single place will surely help in the development of the CP community.

      Disclaimer: In no way, I am discouraging anyone who is not red or orange to teach. I am just considering the fact that red or orange coders have a comparatively smaller part to explore and learn.

      Also if in my life I ever become red or orange, I will love to teach people and help the CP community in any possible way.

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

        sounds like communist propaganda but ok

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

          Dude, Benzene(C6H6) also follows some kind of communism by sharing electrons. Just kidding.

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

            At least benzene is aromatic.

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

              Its aromatic smell and there is tons of diffrence smell and taste.

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

                It was a pun. BTW idk what are you saying? Here you can learn more about aromatic compounds.

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

                  I don't need it now, it learnt it 3 yrs back.

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

      I love vovuh, mike and everyone over here. Will remember this platform untill my last breath. Thank you everyone.

»
4 years ago, # |
  Vote: I like it +29 Vote: I do not like it

Interested! I wish you guys a lot of luck.

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

great intitiative!! Thanks alot codeforces and ITMO university

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

This is awesome! Thanks a lot! Eagerly waiting for future lectures!

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Great!!

»
4 years ago, # |
  Vote: I like it -6 Vote: I do not like it

First of all Thank You for this platform. Codeforces has helped to become a better programmer than i was before. I learned a lot in this platform. I belive with Codeforeces EDU will take that to next level for me and many more users. I hope i one day i will contribute back to this community in one way or the other.

»
4 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Love You Mike

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

Awesome! This is definitely gonna raise the standards of codeforces to a whole another level.

»
4 years ago, # |
  Vote: I like it -6 Vote: I do not like it

that's really great.
my dreams dreams are coming true.
wish you all the luck. emoji("the heart of love");

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

I have a quarry. when I register this link I found topic "Suffix Array " Everyone found that or it's being selected automatically?

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

    I think that's the only topic available as of now more will be added as time passes

»
4 years ago, # |
  Vote: I like it +16 Vote: I do not like it

Really a great initiative <3, I hope it stays free.

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

That's a very good initiative taken by ITMO University and the Codeforces community, especially for all the newbies and beginners in Sports Programming.

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

Great Step...All the Best and Thank you!

»
4 years ago, # |
  Vote: I like it +58 Vote: I do not like it

I always wished there was Andrew NG for Competitive Programming...

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

It would be great if those videos can be played smoothly in low bandwidth internet connection like youtube.

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

    you can select the lower quality in the player

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

      Thanks. But whenever I select low quality like 540 or below, it says "The media could not be loaded, either because the server or network failed or because the format is not supported."

»
4 years ago, # |
  Vote: I like it +7 Vote: I do not like it

Awesome! This will raise the standards of codeforces to a whole another level and will help beginners like me

»
4 years ago, # |
Rev. 2   Vote: I like it -64 Vote: I do not like it
»
4 years ago, # |
  Vote: I like it +26 Vote: I do not like it

Codeforces was, codeforces is, codeforces will be the best platform for CP

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

This is how it should be, free and open to everyone instead of making money out of it like others.

»
4 years ago, # |
  Vote: I like it +2 Vote: I do not like it

This is great! It will be even better if you add a simple source code for the algorithms based on the way you taught!

»
4 years ago, # |
  Vote: I like it +14 Vote: I do not like it

I always have to google each time I start a topic which I didn't knew. We really need something like this where everything is present in a systematic order. Moreover video explanations are really a great idea. I would say Mike just go for it. Really great initiative.

»
4 years ago, # |
  Vote: I like it +100 Vote: I do not like it

It's very nice till it's free.

»
4 years ago, # |
  Vote: I like it -24 Vote: I do not like it

Oh, now everyone will become good, all the secret methods will lose the sense.

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

This is just awesome. I didn't know suffix arrays at all. Was not able to solve questions of suffix array since months.
The course is just awesome. I easily understood everything mentioned in this course. It hardly took me few minutes to understand it.
Thanks ITMO University.
Thanks MikeMirzayanov.
Thanks a lot pashka.

I would like to request pashka for translating more lessons.
If there is any lesson related to digit DP. Please translate it :)

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

    In Russian they have: Z-function, Suffix array, Segment Tree, Binary search, yet.

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

Wow! I can't believe this...This is great...Thanks a ton!!! :)

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

thanks a lot

»
4 years ago, # |
  Vote: I like it +40 Vote: I do not like it

The feature and idea of section is great.

My single complain about current courses there is about narrative side. I don't say that explanations are confusing or misleading. No. They cover topic and explain algorithm in details, and why we do that, and why it works. Tasks are related to algorithms, difficulty increase by steps. In this parts everything is fine. My complain is about following. Every explanation is: data structure introduced straight ahead / solution described straight after statement of problem. It resemble some page of math reference book. "we will solve following problem", and solution straight ahead. It's not listener who solved it. I would not recomend learning anything in this way (in current form). So, I would recomend listeners to make very long pauses after each word "so how we do it?" To think yourself, to try came up with solution yourself.

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

Can't wait my favorite writers contribute a contents/videos too...

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Can you add x1.75 and x2 speeds as well? I usually like to watch videos at high speed. Thanks.

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

    In case you don't know this hack, you can change the playback rate using javascript as described here.

»
4 years ago, # |
  Vote: I like it +36 Vote: I do not like it

Topics I’d like:

  • Computational Geometry

  • Burnside Lemma

  • Parametric Search (also called Alien’s trick because of problem Alien from IOI 2016)

  • FFT

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

Why is codeforces too good to be true ? Its really a helping hand for people who wish to learn from scratch . I really appreciate the code forces team and Mike for putting in such great efforts in making this website a paradise to all the programmers . Thanks Mike... hope that you keep putting such neat efforts in making us happy .

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

Thanks pashka :)

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

Лектор похож на моего первого тренера по вольной борьбе. Что примечательно, оба — Павла

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

Thanks, this will be really helpful

»
4 years ago, # |
  Vote: I like it +14 Vote: I do not like it

I feel this will be one of the most revolutionary features in the history of Codeforces and online judges in general. This will not only help the existing community to increase their standards but also attract a lot of new people to our community.

I have a small suggestion for future of Edu platform. Kindly keep all the content (courses) related to one topic inside a top level heading named after that topic, this will increase the ease of searching for the contents of a specific topic and this way the platform will reach its full potential to help the community.

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

Thanks for Mike and pashka's great work!! We can really learn loads!

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

Why are submissions private?

Since this is educational, it is better to look at other implementation and learn from it, I guess.

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

Hey Mike, great job with the edu initiative. Hope to see more sections added.

I also wanted to point that the "Recent Actions" box within the Edu page seems to be be buggy and all the text is bloated (w.r.t font size) and doesn't look normal.

»
4 years ago, # |
  Vote: I like it +23 Vote: I do not like it

It would be perfect if you add Radewoosh's suggestion, I mean gathering educational blogs in cf

»
4 years ago, # |
  Vote: I like it +2 Vote: I do not like it

I think topics which target large audience should be made/translated first such as DP BS Graphs SgTree/BIT

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

Now codeforces is the best coding platform with everything we will ever need. Thanks !!!!

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

This is simply awesome. Thanks a lot. I hope you make similar videos on Graph Flows Algorithms :)

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

Simply amazing! Thanks, MikeMirzayanov and pashka!

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

Hope to continue it . And make a full playlist for competitive programming.

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

Great initiative! Thanks pashka and keep up the awesome work.

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

Just incredible!

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

wow!!!video content with subtitles!!! This is one of the best ways to learn, I think.

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

can we've lecture like this on binary search? I'm struggling to solve binary search problems. if anyone knows better implementation. please help me out. Thanks!

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

Great idea!

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

WoooooW..!!! thanks a lot Codeforces.

»
4 years ago, # |
  Vote: I like it +16 Vote: I do not like it

this would be a defining moment in codeforces, plus I would urge to have some of the very well written blogs by some really great people at one place on codeforces! That would be great too I think.

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

Mike, you're doing too much for the community. Means a lot. ggwp

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

It's very nice till it's free.

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Thank You 3000 mike ! :)

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

THIS IS AMAZING!

I really enjoyed lessons and problems up to now (I'm starting step5 right now) and learned a lot. First time hearing about suffix array, radix sort (belive it or not, I was really sceptic about it working untile I watched the explanation, and I'm in love with it!) and algorithm in step4 — just reminds me how much I have yet to learn! And in video they are explaned perfectly! Really looking foward to more lessons like this!

What I love about design is how easy and clean it is to go from one step to another, and to swap between practise and theory. It is amazing!

Just some thoughs on possible improvements: like in normal rounds, have friends tab when looking at the "final" score here

And another one, and I think this one will make a lot of controversy. So lets say you get WA. First couple of times is not that bad, but after some time (lets say 5-10) IMO it can get pretty anoying and demotivating. So i would be helpful if you enabled "Show failed test of own submitions" after 5 WA or something simular, to make it easier to find bug. Don't show it after first WA — give everybody some chance to solve it "on their own", but I find it pretty anoying when you don't know what is wrong — this is why I hate practise on AtCoder or Codechef — because you will just not be provided with test your submition is failing. I find it really demotivating after sometimes hours and hundreds of line of code you keep getting WA for 20 or 30 times. So I find 5 WA ok limit, but of course it can get bigger if needed. If you just dont want this, maybe give access to tests to coaches so somebody can take a look and guide some green or cyan coders to fix their bugs...

Also, I hope that this will be more begginer friendly in future, because I found this topic challenging and I had a lot of fun (but also some hard work and debuging), but I don't see how this can help green or cyan coders who struggle to solve div2 B sometimes. For them, IMO would be great to put out some binary search and other sorting and searching problems, and some DP like knapsack and alike, with a bit of non-trivial examples for practise. This would make Codeforces THE site for learning and competing at programming! Of course not all lessons need to be built for them only! Would like to hear something like FFT also, but this topic seams to be pretty hard for begginers, and with time, I hope to see a lot of different difficulty courses!

Again — this is amazing and really looking forward for more! Love everything about it!

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

    Reason why I'm against open tests is: you have to learn how to test your code. On real contest you can't see tests, and you have to debug by yourself. You would say "oh, it's practice, so why can't I see test?" Well, because learn to find tests. Also, learn to make stress tests. Similar holds for algorithms applications. If you make some code in real project, you have to be able to test it.

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

      I agree with you 100% — you usually can't see tests and magic of competitive programming is, in my opinion, both making programs and debuging them. But after 10 WA or so, it really gets demotivating.

      I have been lucky to be able to solve many problems after just a few tries, but once I get 10+ WA and I know that algorithm is correct, I just don't solve it. Finding that one bug is time and energy you can spend on another problem. And sometimes is as stupid as: you have to deal wiht modulo, and sometimes result gets negativ. So just and mod to get it to positive again. But one could spend hours and 10-15 submitions until he found it...

      So I think limit of few (I suggest 5) WA for trying to debug, and then show test (but not all, just one that you failed, and if problem is like "first line t, and t cases follow", maybe just that one case, but I don't know how hard would it be to implement for Mike) — point of this is to stop people from giving up. I have enough experience now to be able to find my bugs, but for a hard topic like this, I think that many people will have problems finding bugs...

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

        For complex topics you need to be also experienced. You also need to be stubborn. So if you have no idea: just make stress test.

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

This is why CODEFORCES is best for CP. Loved it!!!!

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

Thank you very much!That is really a great idea.

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

Great idea, would like to see more topics covered in the future.

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

It's time to update this text, I guess :D

»
15 months ago, # |
  Vote: I like it 0 Vote: I do not like it

can i ask why cant i access the videos, they just wont load, i saw other people commenting about it as well, can u fix it please

»
9 months ago, # |
  Vote: I like it 0 Vote: I do not like it

can anyone please show me the test cases of the problem , i am unable to debug my solution.