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

Автор peltorator, 3 года назад, По-английски

Hi!

I wanted to make a new fun screencast. In this video, I'm solving Codeforces Round #747 (div. 2) but there are two main differences from a regular screencast:

  1. It's a highlight video which means that it's not a 2-hour long video of me thinking about problems but just some fun, interesting, exciting moments.

  2. It's something I called a "Challenge Screencast" which means that there is a challenge I need to complete during the contest. This time the challenge was to not use any loops in the code. So no for loops, no while loops... At all!

https://youtu.be/imGdtb_lB_U

I hope you'll enjoy it! I'll be happy to hear any comments and suggestions for the future challenge screencasts!

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

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

Just use this

template<class Cond, class Body>
void while_loop(Cond c, Body b) {
    if (c()) {
        b();
        while_loop(c, b);
    }
}

template<class Init, class Cond, class Step, class Body>
void for_loop(Init i, Cond c, Step s, Body b) {
    i();
    while_loop(c, [&]() { b(); s(); });
}
  • »
    »
    3 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    As I said at the start of the video of course there always are some hacks like using goto or std::generate but I wanted to actually avoid loops or any replacements of loops.

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

      That was a joke, but on a more serious side, all of the STL functions internally use loops, and transform is a close as there is to a loop replacement. The recursive solution doesn't use loops at any level.

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

        Ok, sorry :)

        About STL functions. Yes, of course, that is true. But when you use a function like find or accumulate, you're not thinking in terms of loops. You're thinking at a higher level, where you're just performing some operations with sequences. If we would use something like accumulative variable + iota + generate or smth that would actually be just a loop replacement, but I don't think that basic STL usage is "loopy".

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

can't u do recursion?

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

    Wow. This is really a cool way to do this challenge.

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

A challenge where you use have to use goto to make your code execute from bottom to top.

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

upvoted cuz I am already having ptsd seeing 5 mins of stream. cant imagine life without loops

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

Man had to spend more time on Stack Overflow than on Codeforces, during the contest XDXD.

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

Can't wait for the second episode in div1

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

You should check out how functional programmers do it. IIRC clyring competes using haskell!

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

This was something different, Loved it!!

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

Suggestion: write every problem in a different language

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

My suggestions :-

  1. Read all the problem statements at once noting necessary details in first 10-15 minutes and then never look at them during the contest.

  2. Only one attempt per problem. You can't resubmit once you get a WA or TLE or a RUNTIME error etc.

  3. Not using #include <bits/stdc++.h> (Not that challenging TBH)

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

Imagine a beginner who didn’t understand the concept from editorial and accidentally open peltorator's codes!

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

Now next challenge : Don't use cout or printf in C++. :XD

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

how about not using 'if'