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

Автор MikeMirzayanov, 6 лет назад, По-английски

Hello.

As I wrote into a comment, last round we are faced with a strong DDOS-attack which ruined the competition. I don't know who did it, I also don't know reasons to do it. I'm very upset about the situation and ready to make an effort to be prepared for such issues.

I spend a lot of time to be ready for such incidents.

Here are steps you need to do to be ready for unexpected failures:

  • Join our telegram channel by the link https://t.me/codeforces_official to read urgent news.
  • Be sure that you know the password of your Codeforces account. If you don't remember it, just use the password recovery feature. Please, do it right now.
  • I've implemented a minimalistic website for replacing the main site in case of emergencies. Now you can only read problems, view your submissions (without any details), submit codes. Probably, later I'll add some more features, but anyway, the minimalistic version will have only vital features to take part in a contest. I've deployed it in several places, you can visit any of them by the links: http://m1.codeforces.com, http://m2.codeforces.com, http://m3.codeforces.com. If any of them is unavailable, just use another. Do not use them if the main website is alive.

UPD: Now you can enter minimalistic websites without a password. In this case, an email with a secret enter link will be sent to you.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, перевод, По-русски

Привет, Codeforces!

Рад анонсировать и пригласить вас на второй запуск моего курса по алгоритмам и структурам данных в рамках.

С 7 по 25 января 2019 г. буду читать курс "Advanced Algorithms and Data Structures" в Harbour.Space University (Испания, Барселона). Курс будет прочитан на английском языке. Слушателями этого курса будут не только студенты Harbour.Space. Курс открыт для всех желающих! Кто хочет присоединиться?

Обычно курсы приглашенных преподавателей в Harbour.Space предназначены исключительно для студентов университета. Второй год подряд мы делаем эксперимент, сделав курс открытым для желающих попасть именно на него. Стоимость обучения составит 1000 евро. Подать заявку можно по ссылке. В стоимость обучения не входит проживание в Барселоне и питание.

Записаться на курс →

В моих планах — подробный рассказ о некоторых алгоритмах и структурах данных, много практических занятий и акцент не только на правильность, но и красоту и структура кода. Моя цель — сделать полезные и интересные занятия для как для всех кто хочет разбираться в фундаментальном CS, так и для интересующихся соревнованиями по программированию. Наверняка, у нас будет возможность познакомиться и пообщаться. Я с удовольствием поделюсь рассказами об истории Codeforces и планами по развитию.

Курс будет состоять из трёх недель обучения, по 5 учебных дней в каждой неделе. В программе — ежедневные лекции и практические занятия. Скучно точно не будет!

Вот предполагаемый план курса (возможны изменения):

Неделя День Тема
1 1 Heap data structure, heap properties and operations. HeapSort. Priority queue. Other heap applications. Mergeable heaps: binomial heap, pairing heap, randomised meldable heap.
1 2 Fenwick tree. Description and motivation. Implementation of Fenwick tree. Generalisation for higher dimensions. Skip list data structure. Implementation details. Indexable skiplist.
1 3 Segment trees. Top-down implementation. Bottom-up implementation. Segment trees applications. Persistent data structures. Persistent stack, persistent array. Persistent Fenwick and segment trees.
1 4 Cartesian trees, treap data structure. Merge and split operations. Treap implementation in detail. Treap applications.
1 5 Treaps with implicit keys. Ropes. Segment reverse operation. Examples of problems.
2 6 Introduction to strings. String searching (matching) problem. Pattern pre processings. Z-function, prefix-function. Their applications. Knuth–Morris–Pratt algorithm. Matching finite state machine.
2 7 Multiple pattern matching. Trie data structure. Aho-Corasick algorithm. Implementation details. Dynamic programming on a trie.
2 8 String hashing. Rabin-Karp algorithm. Fast substrings comparison with hashes. Suffix array. LCP array. Efficient construction algorithm. Applications.
2 9 Suffix tree. Ukkonen's algorithm. Suffix tree construction from LCP array. Suffix tree applications.
2 10 Suffix automaton. Size bounds. Linear Algorithm. Using suffix automata as an index for approximate string searches.
3 11 Introduction to automata theory. Formal languages. Context-free languages. Formal grammars. Context-free grammars. NFA, DFA, convert NFA to DFA. Build automaton by regular expression.
3 12 LL(1) parser. Arithmetic expressions parsing. Shunting-yard algorithm. Simplified Pascal language parsing and interpretation.
3 13 Algorithms for traversing a graph. DFS. Properties. DFS search tree. Edges classification. Linear bridge-finding algorithm. Linear articulation points finding algorithm. Strongly connected components. Tarjan's strongly connected components algorithm.
3 14 Tree problems. Bottom-up approach. LCA problem. LCA algorithms.
3 15 Bipartite graphs. König's criterion. Problems: maximum matching, minimum edge cover, maximum independent vertex set, minimum vertex cover. Connection of the problems. Berge's lemma. Kuhn algorithm. Kuhn algorithm properties. Minimal vertex cover by maximum matching. Cover DAG by minimal number of paths.

Университет Harbour.Space расположен в Барселоне (Испания). Пользователям Codeforces университет Harbour.Space известен по активному участию в жизни сообщества спортивного программирования (сборы и партнерство с Codeforces в рамках образовательных раундов). Основная же деятельность университета — обучение (есть бакалаврские и магистерские программы) по направлениям:

  • Maths as a Second Language
  • Computer Science
  • Data Science
  • Cyber Security
  • Interaction Design
  • Digital Marketing
  • High Tech Entrepreneurship
  • FinTech
  • BioTech
  • Aerospace Engineering
  • SuperCities UrbanTech

Кроме этого, Harbour.Space рад анонсировать стипендии для обучения в магистратуре по робототехнике. Перейдите по ссылке, чтобы ознакомиться с подробной информацией.

MikeMirzayanov

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-английски

Here are merged results of Mail.Ru Cup 2018 Round 1 and Mail.Ru Cup 2018 Round 2 according to the GP100 scores (see the announcement for the details https://mirror.codeforces.com/blog/entry/62355).

Place Contestant = Round 1 Round 2
1 mnbvmar 1497 1000 497
2 aid 1204 204 1000
3 LHiC 1203 497 706
4 V--o_o--V 1150 575 575
5 Um_nik 997 706 291
6 SpyCheese 742 371 371
7 scott_wu 614 307 307
8 budalnik 531 277 254
9 tourist 443 443
9 Lewin 443 443
11 Golovanov399 403 403
11 Endagorion 403 403
13 jcvb 384 198 186
14 Errichto 382 36 346
15 uwi 364 153 211
16 dreamoon_love_AA 355 265 90
17 dotorya 346 346
18 jqdai0815 325 325
18 Petr 325 325
20 SYury 313 78 235
21 Reyna 298 244 54
22 ksun48 291 291
23 kmjp 288 70 218
24 isaf27 277 277
25 Radewoosh 265 265
26 Kostroma 264 218 46
27 zemen 258 226 32
28 irkstepanov 254 254
29 al13n 248 186 62
30 qwerty787788 244 244
31 Zhukov_Dmitry 235 235
32 gamegame 229 192 37
33 voover 227 56 171
34 sevenkplus 226 226
35 Xellos 225 72 153
36 eatmore 218 138 80
37 ezLadder 213 145 68
38 ainta 211 211
39 I_love_Tanya_Romanova 204 204
40 BigBag 198 198
41 RAVEman 195 19 176
42 JustasK 192 192
43 saketh 181 181
43 krijgertje 181 181
45 maroonrk 176 176
46 molamola. 171 171
47 AndreySergunin 166 166
47 Shef 166 166
49 mHuman 163 21 142
50 imeimi 161 161
50 Aeon 161 161
52 Alex_2oo8 157 157
52 wxy_z 157 157
54 JiK 154 128 26
55 yashChandnani 152 92 60
56 snuke 149 149
56 function348 149 149
58 amethyst0 148 135 13
59 receed 145 145
60 Nikitosh 142 142
61 Marcin_smu 138 138
62 Mediocrity 135 135
63 Merkurev 131 131
63 anta.baka 131 131
65 kektus 128 128
66 majk 125 125
66 atacan 125 125
68 kpw29 122 122
68 znirzej 122 122
68 WA_TLE 122 122
71 queria_ser_abella 119 119
72 cookiedoth 117 107 10
73 zscoder 116 116
73 never_giveup 116 116
75 bbatti93 114 22 92
76 Fdg 113 113
76 boook 113 113
78 liujunhao 110 110
78 mjhun 110 110
80 fgcos 107 107
81 pparys 105 105
81 ShadowLight 105 105
83 KrK 102 102
83 orz 102 102
85 sy_chen 99 99
85 rtilikay 99 99
87 KMAASZRAA 97 97
87 hank55663 97 97
89 998kover 94 94
89 TLEwpdus 94 94
91 kaldiuo 90 90
92 rui-de 87 87
92 palayutm 87 87
94 dario2994 85 85
94 cephian 85 85
96 I_love_tigersugar 84 34 50
97 lezdzh 83 83
97 ThePilgrim 83 83
99 kimden 80 80
100 adedalic 78 78
101 papa3 76 76
101 Coder 76 76
103 hloya_ygrt 74 74
103 agutowski 74 74
105 ---------- 72 72
105 tribute_to_Ukraine_2022 72 72
107 maximumSHOT 70 70
108 IndianICPC-Joke. 66 66
108 kefaa 66 27 39
108 NurlashKO 66 66
111 Subconscious 63 63
111 nanachi 63 63
111 gop2024 63 52 11
114 ismagilov.code 62 62
115 riadwaw 60 60
116 Noam527 58 58
116 nhho 58 58
118 fsouza 56 56
119 alex9801 54 54
120 Sert 52 52
120 mariand 52 52
122 natsugiri 48 48
122 mango_lassi 48 48
122 archie_fake 48 48
125 Wild_Hamster 45 45
125 kostka 45 45
127 Anadi 43 43
127 saba2000 43 43
129 Motarack 41 41
129 Farhod 41 41
131 Alexandr_TS 39 39
132 wa1tz719 37 37
133 Egor 36 36
134 zeliboba 34 34
135 f.bialas 32 32
136 .ckodser. 31 31
136 nigus 31 31
138 kyleliu 29 29
138 radoslav11 29 29
140 mateusz 27 27
141 -is-this-fft- 26 26
141 NBAH 26 26
143 icecuber 24 24
144 chemthan 22 22
145 kalinov 21 21
146 kr_abhinav 19 19
147 Lollipop 17 17
147 a.piasta 17 17
149 mmaxio 16 16
149 sava-cska 16 16
151 Weeeee 14 14
151 Quang 14 14
153 sqrtdecompton 13 13
154 test616.cpp 11 11
155 shoemakerjo 10 10
156 tamionv 8 8
156 guille 8 8
158 spiderg 7 7
158 kalimm 7 7
160 glebushka98 5 5
160 AlexLuchianov 5 5
160 teleport 5 5
163 PoDuReM 4 4
164 Holidin 2 2
164 Dmitriy.Belichenko 2 2
166 Diego 1 1
166 _LeMur_ 1 1

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Привет, Codeforces.

Рад поделится небольшим, но полезным обновлением Polygon, которое было полностью разработано мной уже в стенах ИТМО. Теперь подготавливать задачи с затейливым вводом-выводом станет немного проще.

Теперь в новых задачах вы тот ввод-вывод для примеров попадает в текст условия без каких-либо преобразований LaTeX-ом. Например, если раньше у вас были сложности с правильным форматированием пустых строк или тем, что двойной дефис заменяется на тире, то теперь таких трудностей нет. Улучшение работает как для PDF-, так и HTML-условий.

Чтобы иметь вот такие примеры ввода-вывода просто добавляйте такой тест и используйте соответствующий вывод из авторского решения.

Отмечу, что возможность перезаписать примеры сохранилась (custom content of input or output data for statements). Кажется, что причин использовать её для ввода теперь почти нет (видимо, только для интерактивных задач).

В старых задачах используется прежний подход, поэтому это нововведение не должно сломать существующие задачи.

Как вам фича?

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Привет, Codeforces!

Встречайте небольшую инновацию на Codeforces — сложности задач (а заодно и новый виджет фильтрации задач архива). Для всех задач архива мной были подсчитаны сложности в шкале рейтинга участников. Примерно это означает, что если рейтинг задачи равен вашему, то на типичном раунде вы бы решили задачу с вероятностью 0.5. И, вообще, если ваш рейтинг равен ri, а рейтинг задачи равен rj, то задача во время раунда может быть решена примерно с вероятностью:

Например, если рейтинг задачи меньше вашего на 200, то ожидаемая вероятность решения задачи равна 0.75. При разности рейтингов 400 вероятность возрастает до 0.9.

Для удобного подбора задач в архиве теперь можно пользоваться специальным виджетом:

С помощью него можно находить не только задачи, которые имеют все выбранные теги, но и те, в описании которых присутствует хотя бы один тег из списка.

Сложности задач также отображаются при подборе задач в мэшапы.

Надеюсь, теперь вы сможете эффективнее заниматься дорешиванием задач, а процесс сборки тренировок станет проще.

UPD 1: Вы уже заметили новые всплывашки о результатах тестирования попыток?

UPD 2: Добавил в API опциональное поле rating к объекту Problem.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Добрый день!

16-го октября завершился Четвертьфинал Южного подрегиона NEERC (Northern Eurasia) чемпионата ICPC. В Саратове встретились 72 команды, многие из которых получили приглашение по результатам квалификационного этапа.

Уже в субботу, 20-го октября в 11:05 (МСК) состоится онлайн-зеркало 2018-2019 ICPC, NEERC, Южный четвертьфинал (онлайн-трансляция, правила ACM-ICPC, предпочтительно команды).

Надеюсь, вам понравятся задачи. Председателем жюри этого соревнования являюсь я, а над задачами работал дружный коллектив жюри экс-участников чемпионата из Саратовского ГУ и иногородние члены жюри. Спасибо всем!

Приглашаю команды ICPC к участию и просто индивидуальных участников соревнований Codeforces принять участие!

Конечно, соревнование будет нерейтинговое.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Привет, Codeforces!

Для вас, возможно, это был просто еще один раунд на Codeforces. Но не для меня. Codeforces Round 515 (Div. 3) — это был первый раунд, протестированный на новых тестирующих серверах в университете ИТМО. И это не просто обновление техники. Та-дам! Теперь ваши решения будут проверяться на новых i3-8100. И это не все новости. Количество тестирующих серверов возросло, а это значит меньше очередей во время раундов!

Я рад анонсировать, что теперь живу в Санкт-Петербурге, работаю в ИТМО, и Codeforces постепенно перемещается из стен дорогого мне Саратовского университета в этот ВУЗ ИТМО. Решение о переезде далось мне нелегко. Мой план состоит в том, что на базе ИТМО я смогу в большей степени сосредоточиться на развитии Codeforces и работой над платформой. Количество чемпионов мира на квадратный метр здесь просто зашкаливает, а работать вместе с большим коллективом таких же любителей (нет, профессионалов!) спортивного программирования как и я – необычайно вдохновляет. Мне всегда нравился Санкт-Петербург и атмосфера ИТМО. Интуиция не подвела – я чувствую себя в окружении близких мне по духу людей (и я не только про работу). Уверен, впереди много интересных общих дел!

Я не прощаюсь с Саратовом. Это мой родной город, в котором живёт много дорогих мне людей. На свою первую тренировку в СГУ я пришел ровно 20 лет назад. Антонина Гавриловна, спасибо вам большое. Наталья Львовна, как бы я хотел сейчас сказать лично сказать вам слова благодарности. Вы открыли мне интересный мир соревнований по программированию. Мы вместе радовались, когда впервые вышли в финал ICPC, а позже – стали чемпионами России и Мира. Мы провели бесчисленное количество олимпиад и помогли многим студентам СГУ найти себя в программировании. Я горячо болею за будущее Центра олимпиадной подготовки и будущие поколения саратовских олимпиадников. Вот и сейчас, я в Саратове и всё так же председатель жюри Четвертьфинала ICPC и даже сотрудник СГУ. Надеюсь, что у нас получится сделать хороший и интересный контест.

Я постараюсь сделать полный переезд инфраструктуры Codeforces в ИТМО без перебоев в работе систем. Хороший интернет-канал между СГУ и ИТМО внушает оптимизм. Все плановые работы будут подстраиваться под расписание раундов, а оно нынче как никогда радует (пользуясь случаем, передаю приветы координаторам!).

В настоящий момент все решения на Codeforces и в Polygon тестируются на новых серверах на базе процессоров Intel i3-8100. Удачно, что производительность одного ядра не сильно отличается от той, что была у старого поколения тестирующих серверов. Таким образом, ограничения по времени во всех задачах остаются прежними.

Такие новости. Жду вас на раунде Codeforces Round #516 (по задачам МКОШП).

MikeMirzayanov

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-английски

My friends from Harbour.Space and Remy Robotics asked to publish the news. I am excited and glad to do it, because for our community this is a true exclusive offer. In short, they offer to study robotics in Barcelona, paying for your studies and even with a scholarship! It's so cool!

Here is a direct speech from Harbour.Space.

=

Hi Codeforces!

We are excited to announce our new Master’s in Robotics programme scholarship, which will be paired alongside an internship with our partner Remy Robotics! The programme will begin on January 7th, 2019, at our university in Barcelona, Spain.

Harbour.Space’s Robotics programme is the bridge between a personal interest in the world of Robotics, Artificial Intelligence, and a top-level professional future in one of the most exciting and fastest growing fields of technology. Students who enter the programme will either graduate as Control Engineers (theoretical specialists who ensure that robots interact with the environment in safe and effective manner), or CV Engineers (industrial manufacturers of robots, based more on practical experience).

Students will learn the Design and Control for Dexterous Manipulation; Kinematics, Dynamics and Control; Advanced Manipulation Algorithms robots use to physically interact with their world; Dynamic Optimisation for behavioral control; Integrated Intelligence in Robotics: Vision, Language, and Planning which builds upon the cognitive development; Mechanics of Manipulation focusing on using intelligent development of kinematic constraint, gravity, and friction; Manipulation, Estimation, and Control allowing for robots to locomote and navigate the world; Reinforcement learning in Robotics.

SCHOLARSHIP VALUE: €34,900

Apply →

The scholarship includes:

  • Complete coverage of the University tuition fee (€22,900)

  • Living allowance (€1,000 per month during 1 year)

  • Internship at Remy Robotics (20h per week during 1 year)

REQUIRED EDUCATION:

Bachelor's or Master's Degree in Robotics or Computer, Electrical, Mechanical Engineering or related disciplines.

QUALIFICATIONS AND SKILLS:

  • Hands-on robotic programming
  • Ideally experience within the automotive manufacturing sector
  • Knowledge understanding of robot control interface with ancillary equipment
  • Use of robot simulation packages
  • Deep experience with all things robotic, from infrastructure-free autonomy to ROS, computer vision, and machine learning
  • Experience working with robot parts and components, developing robotics devices
  • Ability to concurrently manage multiple diverse and often complex issues and / or projects at the nexus of software, sensors, and hardware

To be selected for this programme, you will need to go through the following steps:

  1. Fill out the given form by the link: https://mirror.codeforces.com/userForm/89f420923cb55373
  2. Attend a series of online tests and interviews with our admissions office and partners
  3. Pack your bags for Barcelona!

Полный текст и комментарии »

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

Автор MikeMirzayanov, история, 6 лет назад, По-русски

Mail.Ru Group совместно с МФТИ, МГТУ им. Н. Э. Баумана и Codeforces в четвертый раз запускает «Технокубок» — олимпиаду по программированию для школьников. В прошлом учебном году олимпиада вошла в перечень олимпиад школьников, повысив свой уровень до второго — круг учебных заведений, дающих льготы победителям и призерам, значительно расширился. Лучшие участники получат ценные призы от компании Apple.

Сразиться за звание самого талантливого молодого программиста приглашаются учащиеся средних образовательных учреждений 8-11 классов.

Победители и призеры олимпиады будут определены по результатам очного этапа, который будет проведен 3 марта 2019 года на базе МФТИ, МГТУ им. Н.Э.Баумана, а также на других региональных площадках по всей России, о которых будет сообщено позднее.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, перевод, По-русски
Tutorial is loading...

Авторы: MikeMirzayanov, awoo; разработчик: vovuh.

Tutorial is loading...

Автор: MikeMirzayanov, разработчик: MikeMirzayanov.

Tutorial is loading...

Автор: MikeMirzayanov, разработчик: awoo.

Tutorial is loading...

Авторы: vovuh, MikeMirzayanov; разработчик: awoo.

Tutorial is loading...

Автор: Errichto, разработчик: Errichto.

Tutorial is loading...

Автор: Lewin, разработчик: Lewin.

Tutorial is loading...

Автор: Endagorion, разработчик: Endagorion.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, перевод, По-русски

Друзья!

Я бы хотел отдельно обсудить ситуацию вокруг негатива касательно раунда 505.

Я понимаю, что большинство участников расстроены падением задач на систестах. В самом деле, претесты в задачах B, D и E оказались слабыми. С задачей C тоже не всё гладко, но ничего страшного я не вижу.

Разумеется, это совместная недоработка автора задач и координатора. К сожалению, такие ситуации иногда возникают и избежать их бывает трудно. По этим задачам количество претестов и их типаж не казались такими уж слабыми.

Задача B: 9 претестов, есть и большие и маленькие ответы, два претеста на -1, есть претесты с n = 1 и n = 2, есть четыре претеста для n = 150000.

Задача D: 14 претестов, среди них и ручные и 4 разных генератора, несколько претестов для n = 700, большинство ответов Yes, но есть и No. Моё мнение, что здесь мало было тестов на No.

Задача E: 14 претестов. Да, эта задача на финале VK Cup содержала 10 претестов и сильно упала у участников. Я добавил в претесты еще 4 теста из тех, на которых падали участники Финала. То, что даже после этого она упала у стольких из вас лично для меня — сюрприз.

Итого, как результат претесты оказались недостаточными, но сказать, что эта очевидная недоработка авторов или координатора — сложно. Видимо, наложился типаж задач и недостаточный опыт cdkrot как координатора.

Я не вникал во все задачи, но мне показался раунд интересным. Жестких фейлов по условиям, багов в тестах или решениях замечено не было. И система работала вполне прилично, очереди не было.

Пожалуйста, поясните свой негатив к раунду. Особенно ценно будет прочитать аргументированное мнение от опытных участников.

Спасибо.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Добрый день.

Я рад подвести результаты розыгрыша призов по двум раундам. Поздравляю топ-10 с выигрышем плюшевого Персика!

Итоговое место Хэндл Место в 504 Место в 505 Суммарное кол-во баллов (ГП-30)
1 Benq 3 4 110
2 TLE 2 8 107
3-4 Swistakk 1 100
3-4 ko_osaga 1 100
5 Egor 4 9 79
6 DearMargaret 2 75
7-8 Kostroma 3 60
7-8 ksun48 6 13 60
9-10 AwD 5 45
9-10 natsugiri 5 45
11-12 gepardo 11 15 40
11-12 xumingkuan 6 40
13-14 RomaWhite 7 36
13-14 webmaster 7 36
15 Deemo 8 32
16 matthew99 9 29
17-18 kriii 10 26
17-18 yosupo 10 26
19 scott_wu 11 24
20 cz_xuyixuan 18 21 23
21-22 Marcin_smu 12 22
21-22 majk 12 22
23-24 samjia2000 13 20
23-24 sunset 16 26 20
25-26 neal 14 18
25-26 yutaka1999 14 18
27 Radewoosh 15 16
28 pavel.savchenkov 16 15
29-30 Batman 17 14
29-30 fateice 17 14
31-32 000000 27 22 13
31-32 kmjp 18 13
33-34 AndreySergunin 19 12
33-34 Arturgo 19 12
35-36 consecutivelimit 20 11
35-36 mareksom 20 11
37 never_giveup 21 10
38 gisp_zjz 22 9
39-40 __Rolton__ 23 8
39-40 Dmitriy.Belichenko 23 8
41-42 ditoly 24 7
41-42 krismaz 24 7
43-44 jvjhfhg 25 6
43-44 yanQval 25 6
45 M.Mahdi 26 5
46 yfzcsc 27 4
47-48 DEGwer 28 3
47-48 wzporz 28 3
49-50 Alex_2oo8 29 2
49-50 nocriz 29 2
51-52 Ilya_MSU 30 1
52-52 MrDindows 30 1

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Hello, Codeforces.

This is a short blog to introduce you recent updates in Testlib and Polygon.

Testlib

Generate a Permutation

Now, you can easily generate a permutation with codes like this:

Code Result
vector<int> p = rnd.perm(n); Generates 0-indexed permutation of size n
vector<int> p = rnd.perm(n, 1); Generates 1-indexed permutation of size n

Function println

Now, you can easily print space-separated lines in a generator. A println uses cout, thus prefer faster method if you print huge data.

Some examples:

Code Result
println(5); Print 5 and line break
println(1, 2, 3); Print 1 2 3 (three space separated integers) and line break
println("one", "more", 5.5); Print one more 5.5 (three space separated items) and line break
vector<int> a; ...; println(a); Print vector a (separate elements with spaces) and line break
vector<int> a; ...; println(a.begin(), a.end()); Exactly the same as above
string b[5]; ...; println(b, b + 5); Print array b (separate elements with spaces) and line break

Here is the example of a generator to print a permutation:

#include "testlib.h"

using namespace std;

int main(int argc, char* argv[]) {
    registerGen(argc, argv, 1);
    
    int n = atoi(argv[1]);
    println(n);
    println(rnd.perm(n, 1));
}

Function readInts and similar

Just as a reminder. Use functions readInts/readLongs/readStrictDoubles or readTokens/readLines in a validator to read and validate a sequence of values. To read a size of an array and array itself, use:

int n = inf.readInt(1, 200000, "n");
inf.readEoln();
inf.readInts(n, 1, 1000000, "a");
inf.readEoln();
inf.readEof();

Polygon

Example Problems

I've introduced three example problems. Each Polygon user has READ-access to them. Please, use them as examples how to write a problem in Polygon. They are:

  • example-a-plus-b: simple A+B problem
  • example-almost-upper-bound: simple problem to illustrate non-standard checker (always consider to use readAnswer function like in the example), generators and stress tests
  • example-interactive-binary-search: simple interactive problem on a binary search

Other Small Fixes

  • Allow to upload files (for example, images) as a contest property/file to use them in the statements.ftl. File names should start with 'statements-'.
  • API has been improved to support general description, general tutorial, tags, test groups and points.
  • Show problem ID on the summary box (on the righmost top block).
  • Replace UTF-8 typographic characters to their ASCII equivalent (for example, replace em dash — with ---).
  • Caching issue has been fixed. Previously, it could show RJ on tests even if the reason has been fixed.

Thanks to fcspartakm for implementing most features in Polygon.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски

Hello, Codeforces!

As many of you I'm not really satisfied how the round 497 has ran. KAN is not working on Codeforces this month, he is out of the city. It was a first round coordinated by arsijo. I liked his enthusiasm and work he did. But it happened, it wasn't an example of a well-prepared round.

The main issues are as follows:

  • The problem statement in the problem A wasn't clear enough (actually, it didn't contain any mistakes, just wasn't easy to understand).
  • The improper example to illustrate the problem B (no mistake here, but it has confused some users).
  • I really didn't like the statement of the problem D2D/D1B. I agree it wasn't good. Again it didn't contain any mistakes, but it was hard to understand it quickly. Also I did the incorrect announcement (but it was fixed quickly).
  • The incorrect behavior of the interactor in the problem D2E/D1C (Time Limit Exceeded/Idleness Limit Exceeded on too many queries instead of Wrong Answer).
  • The huge gap in the difficulty between the D2C and the D2D.

Right now, I'm really do not sure, should the round be a rated or not. What is your opinion about it? The current idea of the writers and the coordinator to make it unrated for whose, who got incorrect verdict on D2E/D1C.

Anyway, I'd like to say “thanks” to the problem writers, testers and the coordinator arsijo. They really tried to make a good round. I hope to see more rounds from Skyglow and coordinated by arsijo. I'm sure they made proper conclusions from the round.

Thanks, MikeMirzayanov

UPD: Thank you for sharing your opinion. The round is rated.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 6 лет назад, По-русски
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей
Tutorial is loading...
Код на C++ для уточнения деталей

Полный текст и комментарии »

Разбор задач Codeforces Round 496 (Div. 3)
  • Проголосовать: нравится
  • +52
  • Проголосовать: не нравится

Автор MikeMirzayanov, 6 лет назад, По-английски

Hello!

This time decided to fill myself in the shoes of the problem writers. It is very exciting! My challenge was to prepare a round in one day. It's really incredible pleasure to surrender to my passion and all day just work on problems!

Despite the fact that in total I've wrote 8 problems, I made it in time. Initially, I prepared 7 problems, but two of them were found to be used before (thank you, 300iq and cdkrot for poining it) and I removed them and wrote a new problem.

Codeforces Round 496 (Div. 3) will start on Jul/09/2018 18:35 (Moscow time). You will be offered 6 problems with expected difficulties to compose an interesting competition for participants with ratings up to 1600. Probably, participants from the Div. 1 not be at all interested by this problems. And for 1600-1899 the problems will be quite easy. However, all of you who wish to take part and have rating 1600 or higher, can register for the round unofficially.

The round will be hosted by rules of educational rounds (extended ACM-ICPC). Thus, during the round, solutions will be judged on preliminary tests, and after the round it will be a 12-hour phase of open hacks. I tried to make strong tests — just like you will be upset if many solutions fail after the contest is over.

You will be given 6 problems and 2 hours to solve them.

Remember that only the trusted participants of the third division will be included in the official standings table. As it is written by link, this is a compulsory measure for combating unsporting behavior. To qualify as a trusted participants of the third division, you must:

  • take part in at least two rated rounds (and solve at least one problem in each of them),
  • do not have a point of 1900 or higher in the rating.

Regardless of whether you are a trusted participant of the third division or not, if your rating is less than 1600, then the round will be rated for you.

Many thanks to the testers: kevinsogo, 300iq, cdkrot, arsijo and adedalic. You really helped to make this round!

Good luck!

UPD 1: The round is over. Thank you for participation!

Official Top-5 (trusted only)

Unofficial Top-5 (+ untrusted)

UPD 2: The editorial is available by the link.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Привет, Codeforces!

Предлагаю и вам присоединиться к тестированию HTTPS для Codeforces. Просто перейдите по ссылке https://mirror.codeforces.com/ и начните пользоваться сайтом по HTTPS.

Я в курсе некоторых минорных недоработок: в письмах пока по прежнему указаны адреса на HTTP-версию сайта, Facebook не объединяет лайки для HTTP и HTTPS. Заметили что-то еще? Пишите комментарий!

И спасибо Let's Encrypt за сертификаты. Теперь с вайлдкардами!

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Привет!

Codeforces Round 481 (Div. 3) начнётся в 13.05.2018 12:05 (Московское время).

Это будет второй в истории Codeforces раунд для третьего дивизиона. В этом раунде будет 7 задач, которые подобраны по сложности так, чтобы составить интересное соревнование для участников с рейтингами до 1600. Наверное, участникам из первого дивизиона они будут совсем не интересны, а для 1600-1899 покажутся простыми. Однако все желающие, чей рейтинг 1600 и выше могут зарегистрироваться на раунд вне конкурса.

Раунд пройдет по правилам образовательных раундов. Таким образом, во время раунда задачи будут тестироваться на предварительных тестах, а после раунда будет 12-ти часовая фаза открытых взломов.

Напоминаем, что в таблицу официальных результатов попадут только достоверные участники третьего дивизиона. Как написано по ссылке — это вынужденная мера для борьбы с неспортивным поведением. Для квалификации в качестве достоверного участника третьего дивизиона надо:

  • принять участие не менее чем в двух рейтинговых раундах (и решить в каждом из них хотя бы одну задачу),
  • не иметь в рейтинге точку 1900 или выше.

Независимо от того являетесь вы достоверными участниками третьего дивизиона или нет, если ваш рейтинг менее 1600, то раунд для вас будет рейтинговым.

Задачи для вас подготовили я и fcspartakm. От души спасибо тестерам AGrigorii, BigBag, nhho и Sert!

Удачи!

UPD 1: Спасибо за участие. Опубликован разбор задач.

UPD 2: Поздравляем победителей! Топ-5 (официальные результаты):

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, перевод, По-русски

Привет, Codeforces!

Последнее время что-то я стал много получать сообщений с просьбами об удалении аккаунта. Я размышляю как наиболее правильно реализовать эту фичу. Какой контент должен оказаться скрытым, а какой является частью истории и должен остаться доступен: блоги? комментарии? попытки? Как эта фича реализована в VK/Facebook и других соцсетях? Есть ли какие-то общепринятые нормы?

Буду рад вашим мыслям в комментариях.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Привет, Codeforces!

Настало время новостей. Надеюсь, вам понравится!

  • Мы немного опускаем границу рейтинга для оранжевых участников. Таким образом, теперь оранжевый рейтинг (и звание мастер) будет начинаться от 2100 единиц рейтинга.

  • Нижняя граница рейтинга для легендарных гроссмейстеров увеличена до 3000 единиц рейтинга. Таким образом, прямо сейчас в сообществе 14 участников соответствуют этому требованию. Настоящие легенды!

  • Для раундов серии «только для Div. 2» увеличена верхняя граница рейтинга для официального участия. Теперь все, чей рейтинг менее 2100 (то есть до кандидатов в мастера включительно) смогут зарегистрироваться на такие раунды для участия в конкурсе, их рейтинг будет обновлён по результатам раунда. Мы не планируем повышать сложность Div. 2 раундов. Практика показывает, что задачи таких раундов и сейчас интересны и полезны участникам «ниже оранжевого».

  • Для совмещенных Div. 1 + Div. 2 раундов распределение по дивизионам остается без изменения, то есть в Div. 1 редакцию раунда будут попадать участники от 1900 единиц рейтинга и выше.

  • В качестве эксперимента мы планируем проводить раунды упрощенной сложности (Div. 3). В таких раундах в официальные результаты будут попадать участники с рейтингами менее 1600. Мы планируем включать в такие раунды простые учебные задачи, которые помогут начинающим участникам освоить получить навыки и новые знания в режиме настоящего соревнования. Так как даже в Div. 2 раундах регулярно находятся любители самоутвердиться из числа первого дивизиона (зарегистрировали новый аккаунт, заняли высокое место в Div. 2 раунде), то имеет смысл ожидать подобное неспортивное поведение и в Div. 3 раундах. Мы будем исключать из официальной таблицы результатов Div. 3 раунда и помещать в отдельную комнату всех тех, кого достоверно сложно назвать реальным участником. Аккаунты, которые существенно участвовали менее чем в 2-х рейтинговых раундах (то есть решили хотя бы одну задачу) до начала Div. 3 раунда, и те, кто когда-либо набирал 1900 или более единиц рейтинга не будут попадать в официальную таблицу и будут определены в отдельные комнаты. Однако, это не означает отсутствие пересчета рейтинга для них. Таким образом, рейтинг будет обновлен у всех пользователей, чей рейтинг строго меньше 1600 на момент старта раунда. Возможно, мы будем экспериментировать с определением кого следует считать достоверным участником Div. 3, а кого — нет. И да, спасибо VLamarca за пост с обсуждением идеи Div.3 раундов!

Обновление границ рейтингов и изменение цветов не мгновенный процесс. По этой причине прямо сейчас на сайте еще могут быть устаревшая информация. Мы работаем над тем, чтобы применить заявленные изменения в течение суток.

Надеюсь, вы рады этим новостям.
MikeMirzayanov

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Добрый день!

Этот пост приурочен к окончанию краудфандинг-кампании по случаю 8-летия Codeforces. Всё получилось. Ура!

Для нас очень важна поддержка не только в плане собранного бюджета, но как мощнейший индикатор того, что Codeforces вам нужен и важен. Было очень приятно прочитать слова благодарности и поздравления. Спасибо!

Мы получили более 1000 пожертвований от участников сообщества со всего мира. За 45 дней мы собрали более $60000 долларов. Собранные средства позволят нам продолжать двигаться вперед, радовать вас новыми соревнованиями и улучшениями в системе.

Я рад сообщить, что начиная с мая 2018-го года мы сможем чуть больше вознаграждать авторов за подготовку задач.

Тип раунда $ рубли
Div 1 + Div 2 $250+*$150=$400 26000 руб.
Div 2 $125+*$75=$200 13000 руб.

Рублевые выплаты мы привязываем к курсу ЦБ РФ на день раунда, округленный к ближайшему кратному 5 числу рублей по правилам математического округления. В таблице указаны значения, актуальные для даты публикации поста. Звездочкой отмечен бонус, который выдается в случае образцовой подготовки раунда.

Кроме того, собранные средства помогут увеличить вознаграждения координаторам задач KAN и vintage_Vlad_Makeev!

Уже запущен процесс улучшения серверной базы, что поможет улучшить стабильность системы и угнаться за ростом аудитории.

Всем тем, кто ждет от нас подарка (сертификат, футболка, толстовка) я напоминаю, что необходимо заполнить или обновить информацию в профиле об адресе доставки. Пожалуйста, не тяните с этим!

Еще раз спасибо вам за поддержку!

MikeMirzayanov

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

19-го апреля в 18:35, начнется VK Cup 2018 - Wild-card Round 2.

Участникам раунда будет предложено за неделю максимально продвинуться в решении одной необычной задачи. Официально в этом раунде смогут принять участие команды чемпионата VK Cup 2018, которые прошли в Раунд 2, но не оказались среди тех топ-100 лучших по его результатам, кто проходит в Раунд 3. Кроме того, этот раунд будет открыт для всех желающих для неофициального участия вне чемпионата. Зарегистрироваться на раунд можно будет в любое время пока он идет.

Продолжительность раунда — одна неделя. После ее окончания мы выберем последнюю попытку, набравшую положительный балл, каждого из участников и проведем финальное тестирование.

Удачи!

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Привет, Codeforces!

10 апреля в 17:35 по Москве начнётся Educational Codeforces Round 42.

Продолжается серия образовательных раундов в рамках инициативы Harbour.Space University! Подробности о сотрудничестве Harbour.Space University и Codeforces можно прочитать в посте.

Этот раунд будет рейтинговым для Div. 2. Соревнование будет проводиться по немного расширенным правилам ACM ICPC. После окончания раунда будет период времени длительностью в один день, в течение которого вы можете попробовать взломать абсолютно любое решение (в том числе свое). Причем исходный код будет предоставлен не только для чтения, но и для копирования.

Вам будет предложено 7 задач на 2 часа. Мы надеемся, что вам они покажутся интересными.

Задачами вместе со мной занимался Александр fcspartakm Фролов. Также мы поблагодарим Николая KAN Калинина, Григория vintage_Vlad_Makeev Резникова и Владимира vovuh Петрова за тестирование и помощь в подготовке раунда.

Удачи в раунде! Успешных решений!

UPD: Подлетела информация от нашего партнёра Harbour.Space University

The third Hello Programming Bootcamp finished as teams from around the world learned, competed, and got to know each other in the cities of Kollam and Moscow.

“I'm positively surprised with the level and number of Indian teams. I believe when following a systematic and regular training schedule — they will certainly attend top world records in programming” says Mike MikeMirzayanov Mirzayanov.

The results of the India boot camp are as follows:

We would like to congratulate the top teams from the India side in both divisions A and B — and especially recognise division A’s winner: Team SDV — Vasily platypus179 Alferov, Vaibhav gvaibhav21 Gosain, Motasem Motarack AL-Kayed sponsored by Social Discovery Ventures, and winners of the Educational Codeforces Round 39.

The division A winners are: Team SDV (platypus179, gvaibhav21, Motarack), TheVindicators (IIIT Kharagpur) (pranjal.ssh, Chenghiz), DomiNUS (NU of Singapore) (vodanhna, darknsux, minh141198).

The division B winners are: BEU Programmers (Baku Engineering University) (mahmud2690, Mamedov, fuck_coderinuse), Penza State University (Fortin, WooDeND, Key_J) and Sab_lite_hai (IIT(BHU),Varanasi) (Enigma27, Dsingh_24, nitishk24).

All results from India side
All results from Russia side

From the ever present in ACM World Finals city of Moscow, to the new-comer on the world stage city of Kollam — Hello India x Russia Programming Bootcamp showcased heart, passion, and a universal drive towards a better competition.

“It's the first time I participate at Hello ACM-ICPC Bootcamp in Asia and I admire local hospitality and students motivation. Everyone seems to be eager to learn, participants stay very late upsolving the contest problems and revising the topics they were thought during the day” states Gleb GlebsHP Evstropov, The Coordinator of the Programming Committee.

The latest in world finals simulation training would not be possible without the bronze sponsorship of VTB, the institute with the most extensive international network of any Russian bank, boasting more than 30 banks and financial companies in more than 20 countries.

Fill out this form and we will keep you up to date on our next boot camp!

UPD: Разбор

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

2 марта в 18:35 начнётся второй квалификационный раунд чемпионата VK Cup 2018!

Правила этого раунда будут совпадать с правилами Квалификации 1. К участию приглашаются команды, не участвовавшие в первой квалификации или набравшие в ней менее 2600 баллов. Те, кто успешно справился с первой квалификацией, могут принять участие вне конкурса, при этом их результаты никак не будут влиять на проход остальных команд. Разумеется, от команд, участвующих вне конкурса, также требуется соблюдение всех правил Чемпионата.

Для участия в раунде сначала необходимо зарегистрировать команду в чемпионате по ссылке:

Зарегистрировать команду на Чемпионат →

Затем следует зарегистрироваться на Раунд:

Зарегистрироваться на Раунд →

Раунд продлится 24 часа, такая продолжительность выбрана для того, чтобы все нашли себе удобное время для участия. Квалификационный раунд, как и все предстоящие раунды, требует отдельной регистрации, она будет открыта на протяжении всего раунда.

При регистрации на раунд состав вашей команды фиксируется и не подлежит дальнейшей модификации. Вы не сможете в будущем добавить или удалить члена команды. Пожалуйста, перед регистрацией убедитесь, что у вас нет желания изменить состав. Состав команды не сможет быть изменен, даже если вы отмените регистрацию на квалификационный раунд.

В Раунд 1 пройдут все команды, которые наберут положительное количество баллов, не меньше количества баллов у команды на 500-м месте.

Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания раунда. Обратите внимание, что претесты не покрывают все возможные случаи входных данных, поэтому тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации не будет. Время сдачи задач не будет учитываться, однако будут учитываться штрафные попытки.

Категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них до окончания раунда. Запрещено обсуждать задачи с кем-либо, кроме вашего сокомандника. Будьте честны, пусть в Раунд 1 пройдут сильнейшие!

После окончания раунд станет доступен всем для дорешивания, а его задачи попадут в архив, в том числе и на английском языке.

Полный текст и комментарии »

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

Автор MikeMirzayanov, 7 лет назад, По-русски

Всем привет!

24 февраля в 18:35 начнется первый квалификационный раунд чемпионата VK Cup 2018!

Раунд продлится 24 часа, такая продолжительность выбрана для того, чтобы все нашли себе удобное время для участия. Квалификационный раунд, как и все предстоящие раунды, требует отдельной регистрации. Регистрация уже открыта и будет открыта на протяжении всего раунда. Результаты раунда не влияют на рейтинг Codeforces.

При регистрации на любой из квалификационных раундов состав вашей команды фиксируется и не подлежит дальнейшей модификации. Вы не сможете в будущем добавить или удалить члена команды. Пожалуйста, перед регистрацией убедитесь, что у вас нет желания изменить состав. Состав команды не сможет быть изменен, даже если вы отмените регистрацию на квалификационный раунд.

Если вы пока не уверены в текущем составе команды, то не регистрируйтесь на предстоящий раунд. Если вы не будете участвовать в первой квалификации или не пройдете по ее результатам в Раунд 1, то вы сможете попробовать свои силы во второй квалификации.

Чтобы пройти в Раунд 1, вам надо принять участие хотя бы в одной из квалификаций. Из каждой квалификации в Раунд 1 проходят все команды с положительным числом баллов, которые набрали не меньше баллов, чем команда на 500-м месте.

Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания раунда. Обратите внимание, что претесты не покрывают все возможные случаи входных данных, поэтому тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации не будет. Время сдачи задач не будет учитываться, однако будут учитываться штрафные попытки.

Категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них до окончания раунда. Запрещено обсуждать задачи с кем-либо кроме вашего сокомандника. Будьте честны, пусть в Раунд 1 пройдут сильнейшие!

Результаты раунда не будут влиять на рейтинг, внеконкурсное участие в раунде не разрешается. Однако, после окончания раунд станет доступен всем для дорешивания, а его задачи попадут в архив в том числе и на английском языке.

Полный текст и комментарии »

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