tourist's blog

By tourist, history, 5 years ago, translation, In English

Hey!

On Oct/16/2019 17:35 (Moscow time) we will host Codeforces Global Round 5.

It is the fifth round of a new series of Codeforces Global Rounds supported by XTX Markets. The rounds are open for everybody, the rating will be updated for everybody.

The round will last for 2 hours 30 minutes, 8 problems are waiting for you, and one of them will be proposed in two versions.

Scoring distribution: 500 — 750 — (750 + 750) — 2000 — 2500 — 3000 — 3750 — 4000

The prizes for this round:

  • 30 best participants get a t-shirt.
  • 20 t-shirts are randomly distributed among those with ranks between 31 and 500, inclusive.

The prizes for the 6-round series in 2019:

  • In each round top-100 participants get points according to the table.
  • The final result for each participant is equal to the sum of points he gets in the four rounds he placed the highest.
  • The best 20 participants over the whole series get sweatshirts and place certificates.

The problems of this round were developed by me, and here is the list of people who can't take part in the round as they know the problems beforehand:

KAN, Endagorion, arsijo, Rox, lperovskaya, Aleks5d, Learner99, MikeMirzayanov.

Coincidentally, this is also the list of people I'm thankful to for making this round what it is.

The round will be perfectly balanced. As all things should be.

Welcome!

UPD: The round is over! Editorial is here. Congratulations to the winners:

  1. Radewoosh
  2. Petr
  3. 300iq
  4. ecnerwala
  5. RomaWhite

Full text and comments »

Announcement of Codeforces Global Round 5
  • Vote: I like it
  • +3664
  • Vote: I do not like it

By tourist, 6 years ago, In English

XIX Open Cup Grand Prix of Gomel takes place on Sunday, February 10, 2019, at 11:00 AM Petrozavodsk time.

The links to the contest:

You need an Open Cup login to participate.

The Division 1 contest also serves as the open qualifying contest for MosCode Festival 2019.

I'm the writer of all the problems. Let's discuss them here after the contest!

Full text and comments »

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

By tourist, history, 6 years ago, In English

The rules for advancement to the onsite finals of TCO 2019 Algorithm have changed from those for TCO 2018:

http://tco19.topcoder.com/home/algorithm/algorithm-rules

This page claims there are "three (3) ways to advance to the Onsite Finals"!

The first way to advance is to take part in SRMs. There are four three-month Online Stages, during which every positive score in an SRM counts towards a global ranking. The best competitor in each Online Stage advances to the onsite finals directly, with the next 10 competitors advancing to Online Round 4 (which is the final qualification round).

The other two ways stay the same. The best 10 competitors (used to be 14 though) advance from Online Round 4, and the best 2 competitors advance from Online Wild Card Round.

The changes seem to be big enough -- and already relevant, since SRM 736 on August 15 (in two days from now) already counts towards Online Stage 1. However, apart from TCO 2019 website I've only seen this information in Topcoder weekly newsletters, and I believe many people have missed it.

What do you think?

Full text and comments »

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

By tourist, history, 7 years ago, In English

XVIII Open Cup Grand Prix of Gomel takes place on Sunday, February 18, 2018, at 11:00 AM Petrozavodsk time.

The link to the contest. You need an Open Cup login to participate.

I'm the writer of all the problems. Let's discuss them here after the contest!

Full text and comments »

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

By tourist, history, 7 years ago, In English

Hello!

Topcoder SRM 728 will be held tomorrow (January 25, 2018).

See what time it starts in your area.

I'm the writer. Everyone is welcome to participate!

Full text and comments »

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

By tourist, history, 7 years ago, In English

What is better than setting one AtCoder Grand Contest? Setting two AtCoder Grand Contests, of course!

AtCoder Grand Contest 020 will be held on Sunday (time). The writer is tourist.

Contest Link

Contest Announcement

This is the first contest of 2018 counted towards AtCoder Race Ranking. If you get into top 30 in this contest, you will get GP30 scores.

The point values will be 300 — 500 — 700 — 1100 (500) — 1400 — 2100. Note that the contest duration is unusual (130 minutes).

Let's discuss problems after the contest.

Full text and comments »

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

By tourist, history, 7 years ago, translation, In English

Here is the tutorial of Hello 2018. Enjoy!

Modular Exponentiation
Christmas Spruce
Party Lemonade
Too Easy Problems
Logical Expression
Strongly Connected Tournament
Power Substring
Don't Exceed

Full text and comments »

Tutorial of Hello 2018
  • Vote: I like it
  • +463
  • Vote: I do not like it

By tourist, history, 7 years ago, translation, In English

Hello 2018!

If you're still thinking what to do on the eighth day of year 2018, pay attention! The first round for both divisions of the new year starts on January 8 at 17:35 Moscow time (what about other timezones?).

Four important components of Hello 2018 will be the same as in Good Bye 2017:

  • Div1 + Div2 combined
  • 8 problems
  • 2 hours 30 minutes
  • Rated

But there will also be a substantial difference:

  • Different problems

The problems of this round have been proposed and prepared by YakutovDmitriy, budalnik and myself.

Thanks to everyone without whom this round wouldn't be possible as well: AlexFetisov, Golovanov399, KAN, MikeMirzayanov, PavelKunyavskiy, qwerty787788, VArtem, winger.

Good luck!

Scoring distribution: 500 — 750 — 1000 — 1250 — 1750 — 2250 — 3000 — 3500.

Problem tutorial can be found here.

Congratulations to the winners!

  1. Um_nik
  2. desert97
  3. yosupo
  4. dotorya
  5. zeliboba
  6. FizzyDavid
  7. Endagorion
  8. .o.
  9. SpyCheese
  10. Kostroma

Full text and comments »

Announcement of Hello 2018
  • Vote: I like it
  • +2848
  • Vote: I do not like it

By tourist, history, 7 years ago, In English

AtCoder Grand Contest 019 will be held on Saturday (time). The writer is tourist.

Contest Link

Contest Announcement

The point values will be 300 — 500 — 900 — 1000 — 1700 (1200) — 2000 (1500). Note that the contest duration is unusual (150 minutes).

Let's discuss problems after the contest.

Full text and comments »

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

By tourist, 7 years ago, In English

There's been much controversy lately about the late submission strategy not penalized by scoring systems of AtCoder and CS Academy. Most of the relevant discussion happened earlier at http://mirror.codeforces.com/blog/entry/53431 and http://mirror.codeforces.com/blog/entry/53449.

I have a lot of thoughts on the topic, so I've decided to share them in a separate blog post.

I really like the strategic part of programming competitions. Of course, problem solving is more important. But every contest consists of multiple problems, so there has to be a way of comparing participants which performed better at different problems. There's a huge variety of scoring rules, and I find it truly amusing.

The "submit after solving all problems" strategy looks widely attributed to me now, mostly due to Petr's remarks regarding my participation in AtCoder contests. In my opinion, it's wrong for multiple reasons.

A closer five-word description of my strategy is "implement after solving several problems". It's still quite inaccurate, though.

Here is my typical behavior during the last few contests:

  1. Read all the problems. Usually starting with the last one, but it's not important.
  2. While reading each problem, try to understand what it asks for, think about it for a minute.
  3. Start thinking about problems in random order, frequently jumping from one problem to another.
  4. Strive to make progress or look at a problem from a different perspective every time you get back to it. For easy problems, this usually means solving them from the first try, as there's little progress to be made.
  5. Look at the scoreboard to get a grasp of the amount of time people typically spend on each problem. This helps understand whether one should look for a simple solution.
  6. At some moment, I feel stuck in every problem I haven't solved yet (possibly an empty set). This usually happens during the first half of the contest. Implement solutions to solved problems in any comfortable order. Submit them. Here, there are two main options: submit a solution after implementing it, or do a batch submit after implementing all of them. I've tried both, and I think it doesn't matter too much. At least the latter option doesn't make me upset with WA in the process of implementing another solution, and also saves me from the urge of refreshing the submissions page for each problem separately :)
  7. Try to solve the rest of the problems, again jumping between problems if there's more than one, but spending more time on one problem in a row. Once a problem is solved, implement its solution and submit.

I feel like this strategy has only one major disadvantage. Time spent in the beginning on problems one doesn't eventually solve is counted towards the penalty, which doesn't happen when using the standard "solve -- implement -- submit -- move on to the next problem" working cycle. For example, this could've cost me several places during AtCoder Grand Contest 018 -- I spent more than 10 minutes thinking on E and F before deciding to implement A-D, so if I hadn't solved problem F, I would've taken place 10 instead of place 7 with the normal strategy. It would've been even worse if both E and F had turned out to be unsolvable (which happens sometimes too) -- place 5 instead of place 1 for me. So, there's a prerequisite which one might call a disadvantage too: it's important to estimate problem difficulty well and feel when it's time to move from thinking to implementing.

On the other hand, I see multiple advantages. The first and foremost advantage for me: I feel very comfortable with this kind of behavior. I know that for many people it's hard and non-profitable to switch between problems too often, as it takes time to change the context. But I'm used, if not say addicted, to switching between problems often, and it seems in this case I come up with new ideas faster and better. Maybe that's due to subconscious thinking happening in background, or just a fresh look at the problem helps, it's hard to say. Implementing several solutions in a row also turned out to be comfortable and effective enough for me, as unlikely as it may seem.

Another slight advantage is, as Petr mentioned, not giving information to other participants. Intentionally withholding submissions to prevent giving information does help sometimes. It's a rare thing, though. In most cases, if you want to optimize your own result, you want to submit when it feels like you should submit, not when the scoreboard tells that you may submit.

And a small advantage I also consider important is seeing the whole picture of the problemset this way. Like, when you come to an exam, you can either start working on the problems one by one until you run out of time, or consider all the stuff you need to do and start with the most important things. The latter option feels better to me, though it might be very subjective.

Finally, the most controversial point is the possibility to bail out of the contest if your performance is poor. I wouldn't call it an advantage of this strategy. I believe considering the option of leaving the contest without submitting is disadvantageous, as you spend time thinking whether you should submit, while other participants work on the problems at the same time. The only profit you might get is the possibility to save your rating, which is a way of comparing contestants over many rounds but doesn't influence anything except one's self-esteem. And leaving the contest doesn't boost your skill anyway, so this is a meaningless thing to do in the long run.

To the admins of AtCoder and CS Academy: I think there's no need to change the rules. In my opinion, the "loophole" of leaving the contest without submitting doesn't create any big troubles. Clicking on the "Read Problems" button making the round rated for oneself requires a higher level of commitment from contestants which sometimes they aren't ready to provide. There are people for whom the rating is more important than participating in the contest; let them be. We are not reaching any goals by requiring much commitment, we're just decreasing participation.

Have fun!

Full text and comments »

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

By tourist, history, 8 years ago, translation, In English

Here is the tutorial of VK Cup 2017 Round 3 and Codeforces Round #412. Enjoy!

Is it rated?
T-Shirt Hunt
Success Rate
Dynamic Problem Scoring
Prairie Partition
Perishable Roads
Blog Post Rating
Test Data Generation

Full text and comments »

Tutorial of VK Cup 2017 - Round 3
  • Vote: I like it
  • +570
  • Vote: I do not like it

By tourist, 8 years ago, translation, In English

Hi everyone!

The last elimination round of VK Cup 2017, Round 3, will take place on May 7 at 18:35 MSK (check your timezone here), along with separate Codeforces Round #412 for both divisions. All three rounds will be three hours long, and all three rounds will be rated.

The contest "VK Cup 2017 — Round 3" is for teams qualified from Round 2 or Wildcard Round 2. The top 20 teams will advance to the final which will be held in July 2017 in Saint Petersburg!

Huge thanks to KAN, qwerty787788, PavelKunyavskiy, AlexFetisov, MikeMirzayanov, and VK company for making this round possible.

Codeforces will be the main character of most problems. Don't forget that it's useful to read the statements of all the problems.

Good luck!

As we're in year 2017, the scoring will obviously be static. The exact scoring distribution will be announced before the round.

UPD 1. The scoring distribution is:

Div. 1 and VK Cup Round 3: 500 — 1000 — 1750 — 2500 — 2750 — 3500

Div. 2: 500 — 1000 — 1500 — 2000 — 2750 — 3500

UPD 2. Due to yesterday's registration troubles the start of the contest is delayed by 10 minutes.

UPD 3. Congratulations to the winners!

VK Cup Round 3:

  1. zemen, Zlobober
  2. V--o_o--V, LHiC
  3. RomaWhite, witua
  4. YakutovDmitriy, budalnik
  5. Golovanov399, -imc-

Div. 1:

  1. Petr
  2. yosupo
  3. rng_58
  4. uwi
  5. Nezzar

Div. 2:

  1. ltaravilse
  2. btk15049
  3. RCG
  4. SUSTechDFS
  5. hieutrungle

UPD 4. Tutorial is now available.

Full text and comments »

Announcement of VK Cup 2017 - Round 3
  • Vote: I like it
  • +2247
  • Vote: I do not like it

By tourist, history, 8 years ago, translation, In English

XVII Open Cup Stage 10: Grand Prix of Gomel takes place on Sunday, February 5, 2017, at 11:00 AM Petrozavodsk time.

The link to the contest. You need an Open Cup login to participate.

I'm the writer of all the problems.

This problemset will also be used at Barcelona ACM ICPC Bootcamp on Monday, February 6. Unfortunately, this means I have to ask you to refrain from discussing the problems in public until the end of the contest in Barcelona on Monday, 5:30 PM Barcelona time.

Let's discuss the problems here on Monday evening!

Full text and comments »

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

By tourist, history, 8 years ago, translation, In English

Topcoder Open 2016 Algorithm Final Round starts in 28 minutes.

The finalists are bmerry, Enot (aka enot110), Kankuro (aka vepifanov), krijgertje, Petr and rng_58.

Live broadcast will be available on Twitch.

Watch the action in the Topcoder Arena.

Also follow my live commentary on Twitter.

Full text and comments »

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

By tourist, 12 years ago, translation, In English

Hello everyone!

As many of you already know, today is the day for Codeforces Round #127 missing which is really undesirable ;)

Original problems for you were created by tourist and Romka. We tried to emphasize the ideological component of the problems, thus we hope that you'll spend more time thinking than coding. Special thanks for helping in setting the contest go to Codeforces coordinator Gerald. We also thank Delinur for translating the problem statements and Alex_KPR for reviewing them.

We hope that this round won't be just a regular Codeforces round for you, but will bring you new experience and new knowledge. For the authors all problems are equally easy, yet we tried to arrange them in decreasing order of simplicity :)

Problems' point values in Division 1 are 1000-1000-1500-2000-2500. Problems' point values in Division 2 are 500-1000-2000-2000-2500.

Wish you success!

UPD: The contest is over, thanks all for participating. We hope you enjoyed it :)

In Division 1 rng_58 was a clear winner, solving all 5 problems in an hour and a half! No one else managed to solve all problems in two hours.

The winners in Division 1 are (full results):

  1. rng_58

  2. peter50216

  3. liympanda

  4. White_Bear

  5. havaliza

In Division 2 every problem was solved by somebody, but nobody managed to solve all problems. The battle was very tough and the gaps were very small.

The winners in Division 2 are (full results):

  1. Leewings

  2. snow_lotus

  3. 72VanVector_SevNTU

Congratulations to the winners!

UPD2: The editorial is available now.

Full text and comments »

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

By tourist, 13 years ago, translation, In English
Hello everyone!

I invite you to participate in the upcoming short contest at CodeChef.com (http://www.codechef.com/COOK16). The contest starts on November 20 at 20:00 Moscow time (check the starting time in other time zones here). This time I'm setting the problems, while Anton Lunyov (Anton_Lunyov) is the tester. Anton made a significant contribution into setting the contest, so my big "thank you" goes to him :)

Here is some information for those who has never participated in short contests at CodeChef. The length of the contest is 2.5 hours, there will be 5 problems of different difficulty levels. The contest will be held by the traditional ACM rules. No special registration for the contest is needed, it's enough to register at the CodeChef site.

Unfortunately I won't be able to monitor the contest as I'll participate in All-Russian School Team Olympiad in Programming on the same day. Nevertheless, Anton will be able to answer all your questions (if any).

Good luck! ;)

Full text and comments »

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

By tourist, 14 years ago, translation, In English
Contest discussion

Problem A. Noldbach problem

To solve this problem you were to find prime numbers in range [2..N]. The constraints were pretty small, so you could do that in any way - using the Sieve of Eratosthenes or simply looping over all possible divisors of a number.
Take every pair of neighboring prime numbers and check if their sum increased by 1 is a prime number too. Count the number of these pairs, compare it to K and output the result.

Problem B. Hierarchy

Full text and comments »

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