By MikeMirzayanov, 9 years ago, translation, In English

Over the last several months the Codeforces team has been looking anxiously at the inflation in the rating caused by both an influx of new users and the imperfect calculating formulas.

In the end it lead to noticeable shifts in colors and titles. For example, getting red in 2015 became much easier than in 2013.

We conducted a survey about the way to introduce the color bounds. We are happy to announce the updated colors and titles!

A summary of the main changes goes like that:

  • a new color: greenish-blue color or cyan — just like the name implies, this color takes its place between green and blue, now the participants of the second division will be better differentiated;
  • all the colors shift upwards along the rating scale — see the table below. Now reaching the top positions will be harder;
  • the legendary grandmaster — the new title and color for those who reached the sky high rating 2900.

The cold colors (gray, green, cyan and blue) still correspond to the second division and the other ones correspond to the first one.

The requirements to the coach rights haven't changed — you've got to have 2200 or 1900 and a rich history of participations in order to become a coach. Problem tags and groups can be added by the participants from the first division.

The table below illustrates the new values of the color and rank borders:

Rating Bounds Color Title Division Number Number (by color)
2900+ Red Legendary Grandmaster 1 4 183
2600 — 2899 Red International Grandmaster 1 46
2400 — 2599 Red Grandmaster 1 133
2300 — 2399 Orange International Master 1 163 380
2200 — 2299 Orange Master 1 217
1900 — 2199 Violet Candidate Master 1 1253 1253
1600 — 1899 Blue Expert 2 5095 5095
1400 — 1599 Cyan Specialist 2 8202 8202
1200 — 1399 Green Pupil 2 5736 5736
0 — 1199 Gray Newbie 2 2319 2319

Active users (who took part in last 6 months) on the moment of October, 1 are counted.

I will write about the changes in the rating formulas as soon as possible, And yes, the formulas will be open!

Full text and comments »

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

By MikeMirzayanov, history, 9 years ago, translation, In English

Hooray! Soon there will happen several updates on Codeforces affecting rating and colors. The second Revolution of Colors and Titles is coming!

You will soon find out a new rating with public formula, new color bounds and even something more...

New bounds will fix the rating inflation of last year, it will return exclusivity of high rating and titles. Don't worry if you end up with lower color; it's a new reason for you to move forward!

While discussing the ongoing change we faced an issue about how to apply new colors with two possible solutions.

First solution: forward without looking back.

When applying new bounds we will update colors everywhere according to a new schema. For example, somebody can possibly lose not only the read color, but he may also regain a new challenge "to become red" since he lost time when he was red before on his rating history. For the first time it doesn't seem as a good solution, but if you think deeper, there is nothing bad in it. Ratings will be whole without cases like "you were read before the revolution, that doesn't count!". In old ranklists there will be no mess within colors of modern contestants (from upsolving or virtual contests) and historical contestants. Irregular visitors of Codeforces won't be confused of the fact that somebody is red in the standings but shouldn't have been red before according to his rating.

We did like this before it worked not bad, if we have changed the color history back then, it would have added mess and confusing.

Second solution: keeping history.

When adding new bounds we will keep old ranklists, posts and comments "as is". This won't break comments like "Congratulations with a red color!" (not sure if they are that valuable) Such solution will keep your achievement "to become red" unlocked, i. e. this part of your biography remains still confirmed by your rating history.

We may even make a rating graph become cut on two parts with a vertical line at the moment of a revolution. The old colors will remain to the left of it, and the new colors will be placed to the right of it. Although this may lead to a confusing of newcomers unprofessionals and rare Codeforces visitors.

Overall

As you see, both solutions have their pros and cons. I don't even know what is better among this two possibilities. That's why I want you to vote for the better choice. If one of the solutions surely wins, we'll use it. Otherwise I'll do as I think it is best.

Please vote only after carefully reading both options. First two comments below correspond to the solutions. Negative voices won't be considered at all, positive will have weights 1-2-4-8-16-32 according to your color (grey-green-blue-purple-orange-red). The vote is secret, results will be available on October, 1st in the evening.

UPD: The voting is finished. We congratulate the first option with a confident victory: 6394 points vs 2320 points! The comments for voting have been removed not to affect comment votings statistics. You may expect changes in colors and ranks in the nearest future!

Full text and comments »

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

By MikeMirzayanov, history, 9 years ago, translation, In English

As I work with students I often face the situation when if a problem doesn't seem clear to a student at the first sight, it makes them unable to solve it. Indeed, you always hear about specific methods and techniques. But you don't hear about how to think in order to apply them. In this note I'll try to sum up my experience of solving programming contest problems. However, some pieces of advice will also be applicable for olympiads in mathematics and your first steps in academic research.

So you've read a problem and you don't know how to solve it. Try the following techniques, some of them can often come handy.

Technique 1: "Total Recall"

Try to remember some similar problems that you had to solve. Quite many problems do not have a brand new idea. So probably, you can use your experience of solving a similar problem to solve this one.

Technique 2: "From Specific to General"

Let's say that you've found the solution for the problem (hurray!). Let's consider some particular case of a problem. Of course, you can apply the algorithm/solution to it. That's why, in order to solve a general problem, you need to solve all of its specific cases. Try solving some (or multiple) specific cases and then try and generalize them to the solution of the main problem. Such specific cases can be regarded as the simplifications of the problem, i.e. we can reason by the following principle: "if I don't know how to solve a complex problem, I think I'll simplify it and find the solutions of the simplified version".

The popular examples of simplifications (specific cases):

  • you get a problem for a tree. Consider its variant where the tree degenerates into a path;
  • the problem has weights? Consider a variant where all the weights are equal either to one or to an arbitrary number, or there are only two distinct weights (and so on).

Note that the solution of a specific case almost always isn't easier than the solution of a general one, so you need to try and find a solution that would be as easy and effective as possible.

Technique 3: "Bold Hypothesis"

Don't be shy of making bold hypotheses that seem true to you. You do not have to prove your solutions during contests, tap your inner intuition. When you've come up with your hypothesis, try to prove it — it may either work out well or give you an idea of how to disprove it. Do test the hypothesis on a wide set of tests as it would be a pain to waste time on implementing a solution based on a hypothesis and only after that disprove the hypothesis.

Examples:

  • the solution always exists;
  • item the number of states isn't large.
Technique 4: "To solve a problem, you should think like a problem"

I'm serious, put yourself in the shoes of the character of the problem, imagine that it's your job to handle the input sets. Think about how you'd act in this case. Try to process some small samples on your own. If the problem is about a game, play it. Sometimes I try to visualize a process or a model for better understanding. It's a little like how movies show the way scientists think. Try to think in images, imagine the solution, see it unfolding.

Technique 5: "Think together"

This technique is only applicable to team contests. In group of two or three persons start saying some clear facts about the problem. For example: "if n is even, then the answer is always 0", "if n is prime, then the solution should go like that", and so on. Sometimes your teammates will pick up ideas and develop them and this strategy can get you through the problem.

Technique 6: "Pick a Method"

Try coming through popular algorithms or methods that can apply to the problem in any way. It is useful to see the problem limits. Having picked a method, try thinking on the solution assuming that the problem is solved using this method. Your reasonings should be somewhat like this: "Let's assume that the problem is solved by divide and conquer. Then let us solve this problem recursively for the left and right half. Now all that's left is to find a way to unite these solutions. I wonder how we can do that..."

Technique 7: "Print Out and Look"

Quite often (especially in problems with a small input: one/two numbers) there are some patterns in the composition of the solution. To see a pattern, you sometimes need to write some naive method of solving a problem, generate answers for a large number of tests on large limits and meditate on your answers for a while. In order not to keep the computer busy, a good strategy is to print out the acquired results and meditate this time on the print outs.

Sometimes it is a good idea to print not only the answer, but also some extra information, such as a manner of acquiring a solutions.

Technique 8: "Google"

This technique can only be used if the round/contest rules allow it. If the problem is about sequences, then you can look for solutions (see technique 7) on the site https://oeis.org/. It helps to understand the formal model of the problem and google the correct mathematical terms.

Full text and comments »

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

By fcspartakm, history, 9 years ago, translation, In English

Hello, Codeforces!

I'd like to invite you to Codeforces Round #322 (Div. 2). It'll be held on Monday, September 28 at 12:00 MSK and as usual Div. 1 participants can join out of competition. Note that round starts in the unusual time!

This round is held on the tasks of the school stage All-Russian Olympiad of Informatics 2015/2016 year in city Saratov. They were prepared by me and recently returned from army Edvard Davtyan (Edvard).

Great thanks to Maxim Akhmedov (Zlobober) for helping me preparing the contest, to Maria Belova (Delinur) for translating the statements into English, to Mike Mirzayanov (MikeMirzayanov) for the great Polygon platform and ideas of some problems and to Vladimir Petrov (vovuh) for writing solutions.

It will be a little unusual round — you will be given six problems and two hours to solve them. The scoring distribution will be announced later. Good luck everyone!

UPD The scoring distribution today will be 500-1000-1500-2000-3000-3000.

UPD2 Editorial

UPD3 Congratulations to the winners!

  1. Moe
  2. for_the_pride
  3. SakurakoujiRuna
  4. VNOI
  5. z123z123d

Full text and comments »

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

By Vladik, 9 years ago, translation, In English

Good day to everybody!

The next round for the participants of the second division will be held at September 22, 2015 at 19:30 MSK. Traditionally, the members of the first division may take part in the contest out of competition.

I (Vladislav Vishnevski) and igdor99(Igor Doroshev) are the authors of the round. We would like to please Zlobober (Maxim Akhmedov) for the assistance in the preparation of tasks, Delinur(Maria Belova) for translating statements into English, MikeMirzayanov(Mike Mirzayanov) for remarkable systems Codeforces and Polygon, as well as our friends daksenik(Dmitry Aksenik) and irevt(Ivan Revt) for their assistance in the round preparation. This is our first round, and, we hope, it won't be the last one!

You will be proposed 5 tasks and 2 hours for their solution.

The protagonist of the round is the parrot Kefa, who likes money and restaurants.

Good luck and high rating!

UPD: The scores — 750-1250-1500-2000-2500.

UPD: Editorial!

Full text and comments »

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

By dreamoon_love_AA, history, 9 years ago, In English

Hello, everyone! Codeforces Round #320 will be held at Sep/16/2015 18:00 MSK. Note that round starts in the unusual time!

The problems are from tmt514, Shik, drazil, and me(dreamoon_love_AA). Also we want to thank Zlobober for helping us preparing the round, AlexFetisov and winger for testing this round , Delinur for translating the statement into Russian, and MikeMirzayanov for Codeforces and Polygon.

This is my second time organizing a problemset for a Codeforces round (my previous round: #292). In my previous round all problems were provided by me. But I think that if problems are provided by more people, then the contest will be more interesting! So I asked my friends to help me this time. Hope everybody can have fun during the round!

Participants in each division will be given six tasks and two and a half hours for solving them (the last four problems in Div. 2 are as same as as the first four problems in Div. 1). Scoring system will be announced later closer to the start of the round.

Bayan is an Iranian software company working on large-scale web applications. It doesn't only develop the search engine, but also it holds an annual open competition Bayan Programming Contest with an on-site round in Tehran. The on-site round of 2015 became an international event with many strong participants.

Bayan has supported Codeforces on our Codeforces 5-year crowdfunding program. Thank you Bayan! This round is in your honor!

UPD 1: Due to technical reasons the round starts at 18:15 Moscow time.

UPD 2: The round will use the dynamic scoring with 250 points step.

UPD 3: Problems are ordered according to their supposed difficulty.

UPD 4: Winners!

Div1:

1) Um_nik

2) Egor

3) Endagorion

Div2:

1) EmaxxMaster

2) gongy

3) Irisviel_von_Einzber

UPD5: link of Editorial

Full text and comments »

Tags 320
  • Vote: I like it
  • +359
  • Vote: I do not like it

By Psyho, history, 9 years ago, In English

Updated on 07/12 for the last time

  • Postmortem -- explains a lot of stuff and it might help you decide if there's any point in watching this
  • Twitch stream -- original livestream
  • YT mirror -- because for some reason a lot of people wanted it

If you have any feedback (bad or good, doesn't matter as long as it's constructive), I'll be more than happy to hear it. Especially since I might do more of these (just not that long).

Updated on 27/11, because it got into "recent actions"

The stream will happen 28/11 Saturday 9:15 AM GMT+1 to 29/11 Sunday 10:15 AM GMT+1

The address for the stream is http://www.twitch.tv/fakepsyho — yes, I mailed with the support and coding on twitch is now perfectly fine. Also, the stream contains all of the essential information, so I'm not duplicating it here.

Also, I'm using this mic, so don't worry about sound quality ;)

Edits:

0) For people who are confused about who took my handle. This guy.

1) I thought I should make it a little bit more clear: I really want to hear what you would like to see. There are no stupid ideas. Want me to eat 0.5kg burger? Want me to play IWBTG? Want me to do push-ups (pls no)? It's entirely up to you what I will talk about. I'm giving free upvotes for every suggestion ;) My goal is to make it interesting for everyone (i.e. across all of the skill levels), so don't be afraid to suggest something that you may feel is very basic.

Short version:

  • I will participate unofficially in M24, I don't want to break my streak of winning three 24h contests in a row ;)

  • I will do the livestream with full commentary (and most probably with full code although it may not happen due to security risks)

  • Since this is for you (across all the skill levels), I need to know what you'd like to see!

Longer version:

Since twitch was born, I thought about doing an educational livestream with solving some problems. The two biggest obstacles are: I wanted to do the livestream during the onsite contest (otherwise there's no thrill, and the conditions are artificial, so even educational values suffers). Unfortunately, this means that the contest would require the participants to have no internet connection. The other thing is that, doing the contest without commentary (and without interacting with chat) is quite boring. If I had participated, this would really hurt my performance. So, this really only works when I'm not 100% focused on winning. Unofficial participation in Marathon24 is a rare occasion to fulfill both of those requirements.

Current status:

  • If you have any ideas for the setup let me know. I will stream the editor + any possible visualization (pretty much everything that happens on my main screen). I may stream the livecam if people want it for some reason. I'm guessing I will also use some virtual whiteboard for drawing/explaining things. I may set up secondary stream exclusively for visualization (so that people will know how the game looks even if I'm not looking at the visualization). I may set up dropbox so that all of my local files will be synchronized. The last thing may not happen due to security risk (some participating team could download it and it would be hard to detect).

  • The stream will be full 24 hours. Probably even longer since I'll start a little earlier. I may also do some pre-finals testing stream, just to be sure to not mess up things during the finals.

  • I'm considering using Twitch. I have some experience with using OBS since I started doing some lame speedrunning recently.

  • Small disclaimer. I should also add that this is not 100% confirmed yet, but folks behind Marathon24 loved the idea (or they are convincing liars).

The things I can do:

  • I want to start at the same time as other competitors will do. The first 15-30 minutes will be reserved time for me (and hopefully viewers too) to read the problem statement.

  • For at least first few hours I will focus on the problem in the same way I would in the contest. I will definitely go way slower since I will be explaining all of the stuff I'm doing. I guess I will shift my priorities dynamically, depending on how I perform.

  • I could try to do live interviews with some participants. That may be hard to do technically, but it's definitely a possibility. The problem is, people don't really like being hassled during the 24h contests.

  • I'm not tied to talking only about M24. For example I could take a 2h break to talk about TC's marathons or stuff like that. It's entirely up to what you want to see.

  • You will be able to ask me questions via chat (less reliable) or twitter (more reliable). I'll try to answer them, unless I will be already braindead ;)

So, to sum things up. Livestream. I need your ideas. Also, if you don't want to miss the news follow me on twitter. And don't worry. I don't spam there too much, since I haven't figured what's the point of it ;)

Full text and comments »

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

By malcolm, 9 years ago, translation, In English

Hey there!

Today at 19.30, Moscow time there will be Codeforces Round #319 and it's strongly disadvised to skip it.

I'm the author of this round, my name is Dima Gorbunov and it's my first round on Codeforces. I really hope you're going to like it and everyone will find a satisfying problem. In order to increase the probability of finding that task, please read all of the problem statements.

As usual, I'd like to thank Zlobober for his invaluable help and his special sense of humour, sankear for coding additional solutions, Delinur for the English statements and MikeMirzayanov for amazing systems Codeforces and Polygon.

You're going to have two hours to solve 5 problems. Good luck!

UPD. The scores in first division are 500-1250-1250-2000-2750.

In second division — 500-1250-1500-2250-2250,

UPD2. Because of large size tests for some of the problems, system testing will be slow (it's possible that it will take several hours). Thanks for your patience!

UPD3. English editorial is also accessible.

UPD4. Winners!

Div1:

1). Marcin_smu

2). mnbvmar

3). I_love_Tanya_Romanova

Div2:

1). latisel

2). wrong_order

3). ntitry826

A special respect to al13n for correct solution of Div1.E during the contest!

Full text and comments »

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

By ibra, 9 years ago, In English

Hi Codeforces!

As you already know from previous post, Bubble Cup is a programming competition organized by Microsoft Development Center Serbia for eight year in a row. And the finals is coming!

This year we came up with a wonderful idea to have an online mirror of the finals on Codeforces! We would like to thank MikeMirzayanov and Codeforces team for their work and support in making this happen.

The online competition will be held on 6th of September, Sunday 11-00 AM (Moscow time). The competition will last for five hours and it will run with the standard ACM ICPC rules. This will be a team contest on Codeforces, with teams consisting of up to three people. Amount of problems(7-10) will be anounced later.

Contest was mainly prepared by employees of MDCS (+ special thanks to knightL and Milanin for great help).

This contest will be unrated (mostly because rules of this contest and not usual for Codeforces (and it is first time we organize this kind of mirror).

10 best teams will receive our special T-shirts (each team member) +10 t-shirts will be handed out randomly to other participants of the top 100.

UPD please pay attention to that we updated maximal possible number of people in a team

Post with editorial, results and T-shirts will be posted a bit later

UPD Link to results and editorial post

Full text and comments »

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