Ari's blog

By Ari, history, 2 years ago, In English

It is well known* that you can insert somewhat arbitrary HTML into your CF blog or comment and Codeforces will happily render it, but it was only today that I learned you can do this in blog titles too!

I'm sure this is a perfectly sensible and reasonable feature that cannot be abused

Full text and comments »

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

By Ari, history, 4 years ago, In English

TL;DR: The most reasonable solution to the problems vs. questions debate is to use none of the currently accepted terms.

As we have seen many times, particularly over the past few days, the task of assigning a label to the activities we perform as competitive programmers is a bigger problem than one might think at first. Time and time again we have seen people questioning what we should call our activities, often to the point of eliciting some rather harsh responses.

To give some context to this discussion, I will focus on two of the terms that members of the community have adopted over the years, problems and questions. (Sorry task lovers! You have some fine points for sure, we frequently talk about subtasks rather than subproblems or subquestions after all :P). All quotations here are posted anonymously, but if you want to claim ownership of one of them or have one removed, just tell me. If you are familiar with the arguments, feel free to skip to the final section of the blog.

The semantic argument

Cause question is just a wrong word for describing algorithmic problems. Question is meant to be shorter and in some sense more lightweight like "could you pass me the salt?" or "why is the sky blue?". When you are given whole story and presented a convoluted statement "problem" or "task" seem much more appropriate and serious and everybody except Indians recognizes that difference. It's not like it is fundamentally wrong, but it somehow feels worse

Quiz sounds like something that can contain questions, because you can answer them. There can exist even algorithmic questions like “what’s the complexity of Dijkstra algorithm?” but problems request something like “write a code which solves this problem”. There is even a difference between “solve this problem” and “how would you solve this problem?”, where the first one is a request and the second one is a question. On a quiz you can give an answer to a question, but on a contest you would rather call it a solution than an answer.

2 synonymous words do not need to have the exact same meaning. It's true that "problem" and "question" both test knowledge. But "problem", especially in competitive programming, also tests skill, and "question" does not.

The gist of this argument is that the terms "problem" and "task" refer to a significantly more complex pursuit than the word "question", which makes them more suited to the complex intellectual pursuit of solving algorithmic problems. Even though language is highly dependent on the context in which it is used, and I personally believe that dictionaries and the like should be descriptive rather than prescriptive, here are some dictionary definitions (from Merriam-Webster) to give context to this argument.

I believe the definitions closest to what we are looking for are 1a and 1b.

Here I believe the first definition is the one we are looking for.

There is another different semantic argument, which I admittedly was not familiar with until yesterday, which is about how the words we use sound in the context of full sentences. One part of this is simple. If you were presented with the blanks "_____ problems", "_____ tasks", and "_____ questions", you would likely come to something similar to "solve problems", "complete tasks", and "answer questions". As "solving" is most similar to what we consider we do in competitive programming, it might seem more correct. The second part of this is a bit more subtle. Consider the sentences

Codeforces has 6651 problems

Codeforces [problemset] has a lot of problems

This is a perfectly normal assertion for a competitive programmer, and yet to an outside observer, it can be interpreted as saying that Codeforces is an extremely flawed website with an inadequate problemset. Point is, the other meanings associated to words matter, and for something like this the word "question" does not carry the negative connotation that "problem" does.

The racial argument

The first screenshot is enough. "question" instead of "problem" or "task" — Indian detected.

Wat? No, it doesn’t work like that. People do grammar mistakes, but I’ve noticed that this one is made mostly by Indians.

I'm American, and I say "problems". However, it's my impression that "questions" is a common term in much of the Indian competitive programming community, and I don't think it's right for a high-rated, influential member of our community to use their platform to constantly point it out and make fun of it. Indian English is different from American English or British English, but it's just that -- different, not wrong.

There is another angle to this question, which is a significantly bigger problem, and as unfortunate as it is, the task of describing the context of this debate would not be complete without discussing it. It is no secret that many members of this community are heavily biased against members from India (see blog posts such as this and this).

Why does this happen? Well, the use of terms such as questions instead of problems, or other terms such as giving or writing a contest is one of many stereotypes associated with competitive programmers from India, the majority of which are negative and perpetuated by the constant mention of them by members of the community. Even if one doesn't have extensive knowledge of the community it takes no more than a few simple google searches to realize how overwhelming the distaste towards Indian users in particular is.

One may argue that pointing out the use of "questions" instead of another term is not racist, as the distaste doesn't come from any particular race or nationality. However, context matters, and the mention of such terms as "Indian English", combined with the generalized distaste towards the Indian community gives additional meaning to such callouts, which is not reasonable to ignore.

The solution

Luckily, the English language is vast, and we don't need to restrict ourselves to one or two words. Let's take a look at theasaurus to try to find some other terminology that we can use. When I search "problem" and look at the relevant meaning, I get the following terms:

There are many great terms in here (man, that twister sure was difficult!). But of all of these, I believe the first one listed, bugaboo to be the best. Here is my analysis of this term:

Pros

  1. The word itself sounds extremely funny.
  2. According to theasaurus, it is one of the most relevant synonyms of "problem".
  3. Moreover, if you look the word up in more traditional dictionaries, you will find multiple definitions which range from being completely unrelated, to nonsense, to straight-up contradictory. This is to say that very few people know what the word means, thus freeing us from any associations such as problems being complex and questions being simple or whatever.
  4. The word is very uncommon, which means it is very unlikely for users from either native English or international communities to know the word, freeing it from racial associations.
  5. It's just really funny lol. "I solved four bugaboos last round".

Cons

None whatsoever.

So yeah, that's it, by adopting a different term, we can free ourselves from this seemingly endless debate and use the time we save to be happier instead. Of course, I don't expect the community to adopt this term soon, or ever, but for those of you willing to join me, I look forward to solving a lot of bugaboos with you in the upcoming rounds!

Thanks for reading, and remember, your waifu is real and she loves you.

Full text and comments »

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

By Ari, history, 4 years ago, In English

Note: I can't figure out how to place the tutorials inside spoilers. If someone is familiar with how CF spoilers work and can help I would really appreciate it. For now, be warned that the tutorials are visible by default (but everything else isn't)

UPD: I figured out how to use spoilers! Also added implementations for all problems.

Thanks for participating in our contest!

1509A - Average Height

Author: Kuroni
First solve: Nutella3001 at 00:01:02

Hint
Tutorial
Comments from the authors

Implementation

1509B - TMT Document

Author: Ari
First solve: blue at 00:04:51

Hint
Tutorial
Comments from the authors

Implementation

1509C - The Sports Festival

Author: Ari
First solve: Dukkha at 00:05:32

Hint 1
Hint 2
Tutorial
Comments from the authors

Implementation

1508A - Binary Literature

Author: Ari
First solve (Div. 2): traxex2 at 00:22:48
First solve (Div. 1): tourist at 00:05:04

Hint 1
Hint 2
Hint 3
Tutorial
Comments from the authors

Implementation

1508B - Almost Sorted

Author: Both of us!
First solve (Div. 2): shenmadongdong.qaq at 00:29:52
First solve (Div. 1): tourist at 00:08:19

Hint 1
Hint 2
Hint 3
Tutorial
Comments from the authors

Implementation

1508C - Complete the MST

Author: Kuroni
First solve (Div. 2): deepspacewaifu at 01:42:36
First solve (Div. 1): maroonrk at 00:33:17

Hint 1
Hint 2
Hint 3
Hint 4
Tutorial
Comments from the authors

Implementation

1508D - Swap Pass

Author: Ari
First solve: ksun48 at 00:57:13

Hint 1
Hint 2
Hint 3
Hint 4
Tutorial
Comments from the authors

Implementation

1508E - Tree Calendar

Author: Kuroni
First solve: ecnerwala at 01:02:26

Hint 1
Hint 2
Hint 3
Hint 4
Tutorial
Comments from the authors

Implementation

1508F - Optimal Encoding

Author: Kuroni
First solve: ecnerwala at 01:52:02 (The only contestant who solved this problem!)

Hint 1
Hint 2
Hint 3
Hint 4
Hint 5
Hint 6
Tutorial
Comments from the authors

Implementation

Finally, here's some funny moments that happened while we were working on the round :)

Memes

Full text and comments »

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

By Ari, history, 4 years ago, In English

Hello friends! I was inspired by the recent logo change to make a new logo for codeforces, just for fun. The link to check it out is below, all feedback is appreciated!

Edit: Just a little side note for those unfamiliar with imgur: You can click the link to see the image

https://i.imgur.com/vUCQVjE.png

Full text and comments »

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

By Ari, 4 years ago, In English

Hi!

On Jul/04/2020 17:45 (Moscow time) we will host Codeforces Global Round 9.

It is the third round of a 2020 series of Codeforces Global Rounds. The rounds are open and rated for everybody.

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

  • 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 all series get sweatshirts and place certificates.

Thanks to XTX, which in 2020 supported the global rounds initiative!

The problems of this round were prepared by a team of authors: adamant, antontrygubO_o, Ari, dengyaotriangle, hugopm, Kuroni, enoone, and Ynoi. We would like to thank the following people:

You will be given 2 hours and 30 minutes to solve 9 problems, and we highly encourage you to read all of them :)

To save testers the work of writing their opinion in the comments, we have compiled some of their opinions for them!

Round Feedback

Good luck!

UPD: Score distribution:

500 — 750 — 1500 — 1750 — 2000 — 2000 — 2250 — 2750 — 4000

UPD2: Editorial

UPD3: System tests have finished, congratulations to the winners!

  1. tourist
  2. scott_wu
  3. yosupo
  4. Um_nik
  5. Rewinding
  6. lqs2015
  7. heno239
  8. Motarack
  9. zeronumber
  10. Itst_boyfriend

Full text and comments »

Announcement of Codeforces Global Round 9
  • Vote: I like it
  • +2693
  • Vote: I do not like it

By Ari, history, 6 years ago, In English

Thank you for participating! We hope you liked our problems.

Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...

Full text and comments »

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

By Ari, history, 6 years ago, In English

Hi Codeforces!

We are happy to invite you to take part in Codeforces Round 561 (Div. 2). The contest will be held on May/17/2019 18:05 (Moscow time).

You will be given 6 problems and 2 hours to solve them. The round will be rated for all contestants with rating below 2100. As usual, participants from the first division are welcome to join out of competition.

The problems were written and prepared by Jefe and me. We owe a huge thanks to KAN for coordinating the round, to Lewin and mohammedehab2002 for testing, and of course, to MikeMirzayanov for the great Codeforces and Polygon platforms.

Good luck and have fun!

UPD: A huge thanks to neal, dreamoon_love_AA, and antguz for help with additional testing.

UPD2: Thanks for participating! System tests have finished. Congratulations to our winners!

Div. 2

  1. iristran911

  2. Sigyn

  3. HaylayWilliams

  4. albertg

  5. Tianhen

Div. 1 + Div. 2:

  1. 244mhq

  2. Um_nik

  3. uwi

  4. iristran911

  5. HIR180

Editorial will be available soon.

UPD3: Editorial is up!

Full text and comments »

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