Олимпиада по информатике. Муниципальный этап

Аватар пользователя prepod

Как обычно проходит олимпиада по информатике на нашем районе)

Заявляется допустим 50 участников. Приезжают 45. Через 15 минут после начала начинают выходить первые юные программисты с несколько озадаченным выражением на лице. Через полчаса уходит треть. Иногда уже половина. Через 2 часа остаются 5 монстров которые и остаются все допустимые по регламенту 4 часа. Кто-то из них получит какие-то баллы. Возможно. Может и нет.

Почувствуете мощь, с которой сейчас в наших школах растут кадры российской IT-элиты...

На прошлой неделе я и сам возил учеников на муниципальный этап олимпиады школьников по информатике. Есть повод рассказать интересующимся о процедуре ну и пару мыслей&наблюдений накидать.

За последние 15 лет олимпиада по информатике одновременно и сильно изменилась и осталась абсолютно прежней.

Что осталось неизменным, так это главная идея - олимпиада по информатике = олимпиада по программированию. Другого не дано. Неважно в каком ученик классе, в седьмом или одиннадцатом. Для получения баллов необходимо составить работающую программу на одном из языков программирования.  Так у нас было всегда. Сейчас стало совсем безвариантно.

Что изменилось очень сильно - сама процедура. Еще лет 5-6 назад участникам раздавались задания на листочках. Теперь участники перед началом олимпиады получают логин-пароль для доступа на сайт олимпиады. Логинятся и читают задания на сайте. На сайт же и загружают файлы с решениями. Решение - скомпилированный исполнимый файл текстовый файл с кодом.

Решением задачи является программа, написанная на одном из следующих
языков программирования:
• Pascal
• C
• C++
• Java
• Python.

Кому интересно, при компиляции текста программы, которую участник сдает на проверку, жюри
использует вполне определенные командные строки для компиляции решений:

Компилятор Командная строка
GNU С 4.9 (MinGW) gcc -O2 -х с –WI, --stack=67108864 <исходный файл>
GNU C++ 4.9
(MinGW)
g++ -O2 -х с++ –WI, --stack=67108864 <исходный
файл>
GNU C++11 4.9
(MinGW)
g++ -O2 -х с++ -D_ _USE_MINGW_ANSI _STDIO=0-
WI, --stack=67108864 --std=c++11
<исходный файл>
GNU C++11 5
(Linux)
g++ -O2 --std=c++11 -static <исходный файл>
Visual C++ 2015 cl /F67108864/O2 /EHs /TP <исходный файл>
Java javac <исходный файл>
Free Pascal fpc <исходный файл>
Pascal ABC.Net 2.1 pabcnetcc <исходный файл>
Python 3.5 python <исходный файл>

Когда-то (лет 5-6 назад), школьники после завершения олимпиады оставляли за собой файлы с кодом и листочки с кодом и блок-схемами. Ученики расходились, а толпа коллег-информатиков начинала коллегиально проверять решения и раздавать баллы. Бывали жаркие дискуссии)

Теперь ничего интересного. Никаких интриг и мордобоя. Решения участников проверяются в 2 этапа:

- сначала бездушная система берет загруженную учеником прогу и подсовывает ей файлы с исходными данными. Решения системе разумется известны так что если творение шкодера вдруг выдает именно верное решение, то участнику начисляется БАЛЛ. Совершенно автоматически.

- набравшие баллы программы проверяются живыми экспертами

Вот так.

Скучно теперь стало на олимпиадах. В нашем муниципальном образовании - всего 58 школ. Из них - 34 в самом городе. Остальные - в окрестных поселках. Было врем, городские и деревенские олимпиады проводились отдельно. Теперь - все вместе собираемся в городе. В этом году из 24 сельских школ заявились на муниципальный этап всего 4 школы. Приехали фактически - только из 3.

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

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

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

При работе с автоматизированной системой есть объективная сложность - участнику совершенно недостаточно найти правильный алгоритм решения задачи. Для того, чтоб система приняла решение, необходимо в программе ПРАВИЛЬНО реализовать ввод-вывод информации через текстовые файлы. Это - сама по себе отдельная задача с неочевидными решениями. Вот и получилось, если ранее ученики могли хотя бы алгоритм реализовать внятно и это решение могло быть оценено комиссией живых проверяющих преподавателей, то теперь ученику просто реализовать алгоритм - уже недостаточно. Вот и пошел дополнительный отсев деток без устойчивых навыков практического программирования.

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

Есть еще проблема. В школах преподаватели информатики просто сами не умеют программировать. Даже на простейшем уровне. И решения этой проблемы - не особенно видно. Я получил диплом педагога всего 3 года назад. В моей группе заочников из будущих преподавателей информатики умел программировать только один человек. Можно наверно порадоваться, что в школу работать все равно никто не отправился.

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

Я сам толпу кружкистов своих первым делом отправляю на сайт Информатикс - сайт дистанционной подготовки к олимпиадам по информатике. Кто сможет разобраться и начать продвигаться там, тот реально чего-то стоит и с таким кадром надо работать точно.

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

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

Авторство: 
Авторская работа / переводика
Комментарий автора: 

Вобщем, умных талантливых деток в школах наших много. Те, у которых есть талант именно в программировании - такие тоже не редкость. Вот только есть пара проблем, которые мешают талантливым детям раскрыться.

Первое и главное - у детей просто нет мотивации трудиться и осваивать сложные концепции вне школьной программы.

Второе - фактически полное отсутствие в школах компетентных хотя бы в основах программирования преподавателей информатики.

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

Комментарии

Аватар пользователя Another_jim
Another_jim(9 лет 7 месяцев)

Можно, сделать стандартные блоки для вывода.

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

Отлично на openedu.ru,в курсе про алгоритмы, было реализовано

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Да, верно. Решение типовое. Но и его надо ученику понять и в голову уместить.

Они ведь с интернетом и примерами решают, а как только инет обрубается, так и структуру программу забыть могут)

Аватар пользователя ascold
ascold(12 лет 9 месяцев)

Язык программирования это такой же язык как и любой естественный, для того чтобы писать программы на нем нужно иметь потребность в этой деятельности.. Ровно так же как нельзя выучить иностранный язык зубрежкой, на пару месяцев таких "знаний" хватит, а потом начинается деградация знания с экспоненциальной скоростью. Но это естественный язык да еще и в период близкий к "лингвистическому взрыву" школьника. Ведь его окончание приходится на 10 -11 лет. Все рядом. А программирование это нечто другое, чуждое растущему мозгу (не все левополушарные формалисты), тут зубрежкой делу не поможешь!

По этой причине школьнику для того чтобы программировать надо иметь потребность в программировании. А вот ее никакой обыкновенный учитель не даст, и обыкновенная школа тоже, и обыкновенная система образования. Вот если бы для обучения в школе требовалось бы программировать чтобы учить другие дисциплины! Это могло бы помочь. 

А так забивать голову мусором тому кому это в принципе не надо - это вредительство! Говорю как инженер-программист с пятнадцатилетним стажем.

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

Аватар пользователя Another_jim
Another_jim(9 лет 7 месяцев)

Язык программирования всё-таки не естественный язык в том, что знак-слово в нем не меняет смысл в зависимости от контекста. Те for- всегда означает начало цикла, а if означает начало некоторого условия.

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

на самом деле, вообще все, что мало-мальски относится к науке, контр-интуитивно) и учеба несколько контр-интуитивна. Нет ничего естественного в искусственных теориях, которые ре-интерпретируют факты)

 

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

 

А чем псевдокод отличается от любого языка программирования? Синтаксис псевдокода тоже нужно учить. А проверять его сложнее. Его не отправишь на исполнение. И не проверишь правильность решения, а будешь ждать учителя. 

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Вот поплюсую и присоединюсь к мнению.

Школьные основы программирования - это ввод-вывод, условие и цикл. Суперцель школьного курса - чтоб школьники уяснили саму концепцию, сам смысл работы этих конструкций. Это ведь не так то и просто.

Аватар пользователя И-23
И-23(9 лет 2 месяца)

И как в таком случае следует называть все попытки засовывания туда объектной модели в отрыве от опытной базы, породившей её?
Пра-а-авильно. Вредительство!

Аватар пользователя morbo
morbo(8 лет 10 месяцев)

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

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Мне тогда интересно, а как надо "всовывать" объектную модель правильно?

Я и самого всовывания объектной модели не наблюдаю. Может и интересно было бы. Но куда школьному преподу втыкать функциональную модель или объектную если времени только по базовым конструкциям есть проскакать.

Кто из комментаторов полистал учебники базового уровня для 7-9 классов?

Аватар пользователя XVoland
XVoland(7 лет 10 месяцев)

Согласен с комментатором выше про зубрежку синтаксиса... Для проверки его есть компиляторы/интерпретаторы... И те меняются чуть ли не с каждым новым проектом... Если уж на то пошло и нужен автоматический контроль результатов - предоставьте также автоматическую проверку синтаксиса и стандартизированный фреймворк для ввода вывода. Все что между и будет достижениями ученика.

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

Аватар пользователя И-23
И-23(9 лет 2 месяца)

Не…
Там всё куда веселее…

Я представлял процесс запуска проверяющим hardened-бинарника на «обыкновенной» системе (для низведения проверяющих полезен обратный финт: попытка запуска «обычных» бинарников в hardened или хотя бы no-multilib окружении).

Аватар пользователя morbo
morbo(8 лет 10 месяцев)

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

Считаю вредительством мучить детей псевдокодом. Дети должны прежде всего видеть практический результат своей работы. Только тогда есть вероятность, что они увидят смысл в этом занятии и будут заниматься самостоятельно. А когда в роли парсера будет выступать учитель, то во-первых ни о каких практических результатах речи и быть не может, во-вторых, ученик не сможет зниматься программированием на псевдокоде самостоятельно - нужен учитель, который будет читать этот псевдокод и оценивать, в-третьих, программирование - это не литература, тут нужны прежде всего объективные оценки, а только потом можно учитывать соображения учителя. Если программа не работает, то не имеет значения, написана ли она по всем канонам. Только если программа заработала, тогда можно послушать рекомендации учителя, как можно улучшить программу. В программировании очень удачно то, что есть возможность объективно оценить результат и ученик не будет считать, что учитель его специально завалил и подтянул своего любимчика.

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

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

Учить то чего завтра уже не будет - это безобразие!

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

Аватар пользователя И-23
И-23(9 лет 2 месяца)

А всё почему?
Всё от того, что Культура работы с классической справочной подсистемой утрачена уже на уровне педагога.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Мелко) Судя по всему, оная Культура утрачена на уровне разработчиков учебников, учебных программ и самих федеральных образовательных стандартов)

Вы развивайте мысль, пожалуйста. Интересно же в самом деле.

Аватар пользователя И-23
И-23(9 лет 2 месяца)

Нельзя утратить то, чем они никогда не владели.

Аватар пользователя qdsspb
qdsspb(12 лет 4 месяца)

А поговорить? 

 

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Угу. Может еще и поцеловать? )

Аватар пользователя Bledso
Bledso(11 лет 8 месяцев)

Второе - фактически полное....

К сожалению, соглашусь.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Эта проблема плохо озвучена.

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

Аватар пользователя Liker
Liker(9 лет 4 дня)

Иными словами нет не только мотивации учащихся, но и мотивации преподавателей.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Мотивация у преподавателей без сомнения есть. Но она не связана с зарплатой.

Аватар пользователя И-23
И-23(9 лет 2 месяца)

Полагаете, задача дрессировки погромистов (особливо — морских свинок) ограничивается школой?

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Быдлокодеров дрессировать вовсе не надо. Они сами появляются.

Воспитание адекватного кодера, как и любого профессионала, начинается с младенческого возраста. И не заканчивается никогда

Аватар пользователя Филистер
Филистер(7 лет 4 месяца)

Было дело, в конце 90-х, даже места какие-то занимал. Задания ограничивались созданием алгоритма(блок-схемы), без реализации в коде.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Аналогично.

Отдельные редкие хакеры писали на Бейсике

Аватар пользователя NoZZy
NoZZy(10 лет 5 месяцев)

никакие мы не хакеры, мы просто умели правильно включить ес1840 

Аватар пользователя Weard
Weard(7 лет 4 недели)

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

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя Филистер
Филистер(7 лет 4 месяца)

Собсна, я хоть и с 1997 года ни разу не, но облечь блок-схему в строки проблем не составляло, так штааа....нмв, алгоритм - 80 процентов решения.

Аватар пользователя Weard
Weard(7 лет 4 недели)

Вы знаете, я в программировании с 91 года где-то, ну, если серьезно брать, а не детские поделки. Боюсь, что забыл все эти условные обозначения на блок-схемах ) Более того, они мне ни разу в жизни не пригодились. А вот матричное исчисление, векторная математика, геометрия и интегралы - постоянно нужны.

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя Филистер
Филистер(7 лет 4 месяца)

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

Аватар пользователя Weard
Weard(7 лет 4 недели)

Мне проще по коду сразу алгоритм читать.. А вот с прикладной математикой у молодёжи большие проблемы. Они не понимают, как использовать знания, полученные в школе-институте. Они не понимают, как работают вектора, как обсчитать движение под воздействием сил без участия физического движка. Неоднократно на форумах читаю вопросы о "начальной точке вектора", что в компьютерной графике есть дичь, или о "силе, приложенной к вектору",

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя ascold
ascold(12 лет 9 месяцев)

Weard, полностью с вами согласен. Мой опыт работы в различных проектах говорит то же самое.. Прикладная математика это альфа и омега! Большинство думает, что кодирование это синоним программирования и даже не представляет что такое разработка ПО. boost и stl - тяп-ляп и в продакшн.. 

Аватар пользователя Филистер
Филистер(7 лет 4 месяца)

Хе, хе, ну дык, понимание, что ВО учит работать с литературой, а не только диплом, дано не всем.

Аватар пользователя morbo
morbo(8 лет 10 месяцев)

Блок-схемы к реальному программированию отношения почти не имеют. Достаточно представить, что в современном программировании данные и код могут смешиваться в произвольных сочетаниях. Например, объект - это данные с функциями для манипуляции этими данными. Замыкания - это экземпляр данных, который формируется в момент вызова функции и становится связанным с процессом её выполнения. Лямбда-функции - это код, который можно поместить в переменную. На блок-схемах всё это адекватно представить практически невозможно.

Фредерик Брукс в знаменитой книге "Мифический человеко-месяц" писал:

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

Аватар пользователя mk2
mk2(9 лет 2 недели)

Как бывший школьник-олимпиадник отвечу: да, олимпиада по программированию. И да, нужно не только придумать алгоритм решения задачи, но и его реализовать. Но блин, вы уже не на листочке пишете программу, и не в блокноте! У вас есть IDE, вы можете программу скомпилировать и отладить. Или cin << a; cout >> b; уже так сложно запомнить?

Аватар пользователя prepod
prepod(9 лет 4 месяца)

cin << a; cout >> b; - это уже не катит.

Исходные данные - из текстового файла. Матрицы - тоже.

Ответ - в текстовый файл строго заданной структуры.

Аватар пользователя mk2
mk2(9 лет 2 недели)

Не преувеличивайте, пожалуйста.

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

"Текстовый файл строго заданной структуры" - аналогично, вывести числа/строки ответа в заданном порядке. Причем в большинстве случаев ответ это одно число или же YES/NO на первой строке и число на второй.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Все верно. Типовая задача. Ничего сложного.

Если понять)

Чтоб врубиться в эту простоту школьник либо должен сам сильно захотеть, либо его должен научить преподаватель. Вы Си в школе сами освоили? Или вас таки научили? Мне просто интересно. И сколько человек в Вашем классе так же смогли врубиться хотя бы в смысл работы какого-нибудь циклического оператора.

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

 

Аватар пользователя mk2
mk2(9 лет 2 недели)

Я к сожалению не показатель, т.к. физматлицей. Врубились все.

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Очень талантливые ребята появляются и в обычных классах)

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

Аватар пользователя Asgard
Asgard(9 лет 8 месяцев)

Это, к сожжалению, касается не только информатики. Мотивированных и компетентных учителей в школе очень тяжело найти...Если кто-то хочет идти на олимпиаду - школьный учитель, обычно, ничем не поможет... А еще есть момент, что на олимпиаду не всегда берут самых талантливых, а тех, за которых договорились (с удивлением обнаружили в этом году, что за старшего (10 класс) нужно было договариваться, чтобы его взяли на олимпиаду по математике, хотя в прошлом году такого не было.. младшего (6 класс) взяли без договоренностей, но школа другая).

Аватар пользователя prepod
prepod(9 лет 4 месяца)

Интересно. Хотя, ожидаемо. Призовое место на олимиаде - хороший бонус при поступлении в ВУЗ. Да еще и на бюджетное место.

Вот только какой смысл преподавателю отправлять более слабого ученика на олимпиаду... Это выстрел себе в ногу.

Аватар пользователя hardknap
hardknap(12 лет 1 месяц)

И что там кроме этого надо? Для всего, что вы перечислили, максимум что может понадобиться - это getline.

Аватар пользователя mentat
mentat(12 лет 11 месяцев)

+1

скажу больше, 20 лет назад уже приходили к идее "ввод с файла", "вывод в файл" - хотя бы для первичной фильтрации. Хотя за алгоритмы и хорошее форматирование бывало тоже накидывали.

В списке смущает отсутствие JavaScript, хотя он сейчас на пике популярности. FPC/PascalABC.Net - вообще узко нишевое и на любителя. Начинать с Паскаля это, по мне, неплохо, но вот на олимпиады с ним идти - не айс.

Аватар пользователя hardknap
hardknap(12 лет 1 месяц)

А что есть в JS для этого? Какие-то библиотеки из node тащить? Какие? В том же Python numpy и scipy - перебор.

Аватар пользователя mk2
mk2(9 лет 2 недели)

Джаваскрипт - это всё-таки веб язык, а задачи предусматривают ввод-вывод через файл или stdin/stdout. К тому же там нет стандартной библиотеки, как в C++ или Java. А паскаль - это типа legacy-экзотика ))

Аватар пользователя hardknap
hardknap(12 лет 1 месяц)

Самые быстрые решения пишутся на FreePascal, однако

Аватар пользователя mk2
mk2(9 лет 2 недели)

Откуда дровишки?

На муниципальном уровне обычно не дают жёстко ограниченные по скорости задачи - максимум что-нибудь за квадрат. А писать регион и выше на паскале - это, извините, извращение )))

Аватар пользователя hardknap
hardknap(12 лет 1 месяц)

Я не про решения на скорую руку, а про те, что основательно делаются на онлайн тестирующих системах во время тренировок. И максимальная скорость получается из-за ввода-вывода, встроенного в язык и оптимизируемого компилятором. Там этот момент очень хорошо проработан. Плюс быстрая инициализация/старт программы.

Аватар пользователя AnGeL_Knight
AnGeL_Knight(9 лет 1 месяц)

По собственному опыту участия в региональных олимпиадах и выше - задания формулируются так, чтобы ввод и вывод максимально не влиял на решение задачи. Значительная часть задач для своего решения редко требует более 10 чисел на ввод и более 5 на вывод.

Аватар пользователя mk2
mk2(9 лет 2 недели)

Не скажите. Часто 1e5 данных, для решения за nlogn. Но вход-выход обычно действительно заморачиваться не надо.

Страницы