Happy New Year, Codeforces!
I hasten to wish the whole community (and including me) correct programs, sudden insights, beautiful ideas and interesting problems!
I hope that you have met the new year at least as fun as I am. Have you had enough sleep after New Year's Eve? This year, the traditional post summarizing the past year, I sat down to write only on January 1, 2018. I hope that I will not have to sum up the whole year.
This post is important to me, since it draws a line to all the work done by the Codeforces team and the entire community in 2017. Many thanks to the team: all of the achievements listed below are the result of joint efforts. We did an excellent job! The community must know its heroes. In 2017, MikeMirzayanov, KAN (problem coordinator), vintage_Vlad_Makeev (second problem coordinator), netman (ex-second problem coordinator), kuviman (developer), fcspartakm (developer), SladeThe (developer) and gKseni (manager). Great contributions were provided by the students of the Saratov University: BledDest, awoo, vovuh, and Perforator — educational rounds, trainings in Codeforces::Gym and help in the development. I radiate the rays of gratitude to problem writers and testers: you create interesting content for many thousands of programmers from all over the world. Many thanks to all those who helped with the special projects, wrote interesting posts and good comments. All together, we were able to make Codeforces better!
So, let's move on to the results. It seems to me, this year again has something to brag about.
Clients and Partners
We are always pleased when companies pay attention to the programming contest whether in order to find the brightest talent (yes, you are!) candidates, whether it is to support our community and just show themselves to you. Very pleased that this year the list of our partners long and varied. Many come again, and it’s inspiring. Here is a list of companies with whom or for whom we hosted competitions: VK, Harbour.Space University, 8VC, Mail.Ru, MemSQL, Playrix, Tinkoff Bank and AIM Tech. In this list, I did not consider the company to whom we just hosted a mirror of their main event.
Here is the list of key partners of 2017:
- Telegram and personally Pavel Durov is supporting Codeforces activities for many years, every regular round is conducted with their help, thank you!
- VK — VK Cup 2017,
- Harbor.Space University — several joint with BootCamp rounds and Educational Rounds,
- 8VC — a joint mini-championship 8VC Venture Cup 2017,
- Mail.Ru — Technocup 2017 and Russian AI Cup 2017,
- MemSQL — MemSQL Start [c] UP 3.0,
- Playrix — Playrix Codescapes Cup,
- Tinkoff Bank — mini-championship Tinkoff Challenge,
- AIM Tech — AIM Tech Round 4.
We have done a lot of work to improve Codeforces and Polygon. Much of the work to improve infrastructure, stability, performance is not visible to everyone. The list below contains the main improvements.
Polygon: https://polygon.codeforces.com – platform to prepare programming problems
- Management of test groups on the page with the list of tests, autocompletion of test groups by name, sorting by them.
- List of the contests to which a problem belongs, accessible from the interface of its editing.
- Improved interface for creating stress tests: checkboxes for solutions, inheritance of a list of solutions when copying a stress test.
- Warnings on problems are reflected on the contest page.
- Send letters about changing an access to a problem/contest.
- Show the reason for the failure checker verification.
- Search by problem author.
- Warnings to use readXXX without a parameter name in a validator.
- Show the change log in the web interface.
- Improved support for problems with the same name in a single contest.
- Stress tests for interactive problems.
- Test groups supported in validator tests.
- Show the problem description in search results.
- Sort contests by modification time.
- Improved support for test input in a statement for interactive problems.
- Validator tests no longer require a checker.
- Add examples of generators, validators, checkers and interactors in the problem edit interface.
- Updated olymp.sty.
- Fixed XSS when adding problem tags.
- Fixed a zero-revision problem search.
- By default, the memory limit is 256MB now.
- Add multiple tests from files without ZIP-archive.
- Improved support of the Ukrainian language in the statements.
- Support for drafts in contest properties textarea.
- The preview of the tests has been redesigned, its work has been significantly improved.
- Display the last commits on the contest page.
- Support for the role of "translator" for a problem.
- Tests autorenumeration so that the examples go exactly first.
- Improved renumeration of tests with selection and moving of the selected tests.
- Warning if the testset contains the same tests.
- Add contests by UID, not by id.
- A problem URL now contains a UID.
- Add statements to a package separately by sections (legend, input, output, etc.).
- Rename files on the Files tab.
- Additional address to send emails about changes in a problem.
- Problem/contest proposals interface and management.
- Notifications (bell at the top of the site).
- Automatic removing of cheaters from virtual contests.
- Improved interface for answers to questions for writers.
- Log on via Facebook and improved linking to external accounts.
- Cities/countries have been reworked, now you can choose them from a list generated from geodatabase.
- Domains for groups.
- Integration with Polygon to show tutorials in blog posts.
- Improved the way to add tests from hacks.
- Customized logo on the contests list page.
- Information about special rules in the sidebar of contest pages.
- Improved training management for coaches (support for freezing, etc.).
- A tag about an atypical problem (*special).
- Show the history of communication with a user when answering on her/his message.
- Improved community support in the framework of Botan Investments grant program.
- Search has been improved in Codeforces::Gym.
- Autologout of all sessions except the current one when changing the password.
- Print support for contests in domain groups.
- Calendar of contests.
- Support for built-in website custom forms for special registrations and surveys.
- Personal private messages of rule violations.
- Multiple system performance improvements.
- Inheriting (copying) a mashup from another contest.
- Diagnosis of solutions in C++.
I already wrote a year ago that every year I’m very excited to summarize statistics. I'm very pleased to report the growth of Codeforces for all major metrics! For me, these numbers and charts mean a lot. First of all, that all efforts find a response among those who are interested in solving problems and programming contests. It's inspiring!
The growth in the number of registered users. More than 600 thousand registrations!
Counted only participated in rated events in period July-December. More than 35000 active contest participants!
You’ve sent more than million solutions in 2017!
Blog posts with positive score, having at least +5 votes, having at least +20 votes, having at least +100 votes. The total number of posts is not interesting, because a lot of trash/spam, which immediately disappears and the result much depends on how we protect against bots and inadequate. A bit less than in the last year. Write more!
All positive scored comments, having at least +5 votes, having at least +20 votes. The growth is small, but it exists.
Brazil broke into the top! The greatest relative increase in India, China, Bangladesh, Vietnam, Brazil, Poland and Indonesia.
Pageviews, about +25% in 2017!
Visits, more than +20% in 2017!
Visitors, about +20% in 2017!
This is not included in the charts, but there is an increase in:
- number of hosted rounds,
- number of new problems,
- number of new trainings in Codeforces::Gym.
Summing up, the year 2017 was a success! I look with enthusiasm at the next.