Олимпиада для поступления в магистратуру ФИИТ

Я вчера несколько раз думал создать эту тему. Но решился только сегодня после слов @bravit о том, что в твитер кто-то заявил, что олимпиада была на проверку знания синтаксиса. Я в этом вашем твитере ни черта не понимаю (и не хочу), и этот месседж не смог найти.

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

А пока (для затравки) отвечу товарищу, который увидел в практической задаче знание синтаксиса. Во-первых, на всех очных олимпиадах интернет закрыт и гугл-программирование отключено. Вы, так сказать, знали на что шли. Во-вторых, задача по факту была на умение прочесть из файла и отсортировать массив строк. Пардон, но некоторые это и в школе умеют делать. Где Вы увидели проверку Вашего синтаксиса?

PS: Кроме прикрепленного условия, надо отметить, что на олимпиаде эту задачу требовалосьрешить на как можно большем количестве языков программирования за ~2.5ч. statement.pdf (630.6 КБ)

Вот еще увидел, что один студент написал, что без интернета знает только Hascell. Очень странно. Ни массивов, ни чтение из файла на c++ Вы на память не знаете?

Когда опубликуют результаты?

Я правильно понимаю, что там в «требуется» одно написано (список имён), а в формате выходных данных другое (список имён со списками языков и количеством)?

Зачем ругаться-то?

Согласно регламенту олимпиады результаты должны быть опубликованы в период с 10 мая по 15 мая.

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

Понятно, спасибо за ответы.

Мне вот всегда интересно было: а зачем?

Во-первых, ты читал условие и ничего не сказал :slight_smile: Во-вторых, в “требуется” описана суть, а в формате вывода формальное описание выводимых данных. Пример.

Я было забеспокоился, но вот тут написано, что это иносказание, как я всегда и думал.

Ну, например, чтобы участник не нашел готовое решение или его часть. Считаете это лишним?

Наверное, в чем-то не прав, но что-то меня припекло.

7 минут на реализацию и отладку.

            var list = File.ReadAllLines("input.txt").Skip(1).Select(str => str.Split(';')).Select(record => new
            {
                ID = int.Parse(record[0]),
                FullName = record[1],
                Language = record[2],
                Result = record[3]
            })
            .GroupBy(dbVal => dbVal.FullName)
            .Select(stud => stud.GroupBy(record => record.Language).Select(recs => recs.First()))
            .Select(stud =>
            {
                var OKs = stud.Where(rec => rec.Result == "OK");
                return new
                {
                    FullName = stud.First().FullName,
                    Count = OKs.Count(),
                    Languages = String.Join(" ", OKs.Select(rec => rec.Language))
                };
            }).OrderByDescending(stud => stud.Count);

            foreach (var stud in list)
                Console.WriteLine(stud.FullName + ";" + stud.Count + ";" + stud.Languages);

В чем суть присутствия подобных задач на олимпиаде? Помнится, в прошлом году был неплохой такой конкурс, многие не прошли. Олимпиада же по идее должна давать избранным, трудолюбивым, одаренным, сведущим студентам шанс на поступление без экзаменов. Задача тут такого уровня, что решить ее сможет попросту любой. Даже тот, который понятия не имеет о программировании в принципе. На экзамене было бы неплохо подобное увидеть - все-таки используется приличное количество различных операций. Но олимпиада, по моему скромному мнению, должна иметь более высокий уровень. В прошлом году уровень был выше, хотя бы потому, что возможных вариантов расчета было гораздо больше. Хоть и решались примерно так же быстро.

P.S. Нет, я не тот студент с проверкой синтаксиса. Но, касательно задачи, по сути, с ним согласен. Интернетом не пользовался.

P.S. Если поступающий в магистратуру человек не справился с подобной олимпиадной задачей, то что ему вообще на мехмате делать? Ему и документы подавать не стоит.

3 лайка

@JediKnight Ваше мнение услышано. Но

  1. В олимпиаде требовалось решить эту задачу на как можно большем числе ЯП. Я это забыл в топике упомянуть для тех кто “не в теме”.
  2. Шикарный результат 7 мин. За это лайк. Но далеко не все с ней справились и тут я Ваш второй PS поддерживаю.

PS: Если Вас не затруднит, решите еще на двух ЯП и суммарный результат мне в личку, плиз.

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

Еще раз хочу подчеркнуть, что мы хотели проверить знание нескольких языков программирования. Поясните причем здесь вообще проверка синтаксиса? Или это гипербола такая (мол задача простая)?

Добрый вечер! Спасибо за проведенную олимпиаду. Очень хочется побыстрее узнать результат :blush:

Полностью солидарен с JediKnight! Формат олимпиады мне не понравился: по сути всё свелось к 2х часовому угадыванию синтаксиса.

Думаю, к концу обучения на мехмате у всех студентов есть 1-2 рабочих языка, на которых выполняется большая часть работ. Для меня это C# и плюсы. Предложенная задача довольно простая. На C# с использованием LINQ её решение занимает не более 10 минут. Хорошо, один язык есть, двигаемся дальше. Очередь за C++. Несмотря на то, что значительное время к языку не притрагивался, задачу кое-как решил. Ура, 2 решения в кармане и около полутора часов времени. А вот дальше началось страшное. Я выбрал PaskalABC, думая, что платформа .NET позволит быстро получить решение. Но… всё оставшееся время я просто пытался угадать синтаксис. Никакого мыслительного процесса. Я просто угадывал. begin-end, var str: string, for var i := 1 to n и многие другие особенности попросту забываются за 2 года. И ты сидишь, и тыкаешь в надежде, что твоя писанина скомпилируется. Увы, мне не повезло, дописать решение не хватило времени.

PS: Я ни в коме случае не ставил перед собой цель кого-то оскорбить или упрекнуть в чем-либо этим постом. Просто высказал свое мнение. Спасибо! :stuck_out_tongue_winking_eye:

5 лайков

Вам на будущее: в PascalABC.NET кнопочка F1 есть с полным описанием языка.

1 лайк

Спасибо, не знал. Для меня камнем преткновения стал формат описания лямбда-выражений.

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

У многих языков в папке с SDK есть доки (и даже примеры!). Помимо этого, у интерпретирующихся языков зачастую есть интерактивная built-in справка (help() какой-нибудь). Удивительно, что все про это забыли.

P.S. А можно узнать рамки по времени? Хочется себя проверить.

2 с половиной часа.

Именно, гипербола.