Как стать автором
Обновить

Комментарии 28

А мне интересно, запись экрана была? Интернет можно было раздать с телефона?

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

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

  1. Давным давно, как на ЕГЭ практически нереально пронести телефон ввиду обысков вездесущих проверяющих, камер и, конечно же, металлоискателей

  2. В пунктах проведения должны стоять средства для глушения сотовой связи, поэтому даже если кто-то и пронесёт телефон(см. пункт 1), то ничего от этого не получит, если только не выкачал весь интернет себе до этого на телефон

А мне очень понравилось.
Ну, не leetcode, но задачи не тривиальные.

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

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

№24 мне нравится. Пошёл играться.

Вот моя версия №24. Улучшения и полезная критика приветствуются.

use std::io::prelude::*;

fn non_double(data: &String) -> u32{
    let mut iter = data.chars().peekable();
    let mut max = 0;
    let mut cur = 0;
    while let Some(ch) = iter.next(){
        cur += 1;
        if cur > max{ max = cur};
        match iter.peek(){
            Some(x) if *x == ch => {cur = 0},
            _ => {}
        };
    }
    max
}

fn main() {
    let mut f = std::fs::File::open("data.txt").unwrap();
    let mut data = String::new();
    f.read_to_string(&mut data).unwrap();
    println!("Non-double length: {}", non_double(&data));
}


    #[test]
    fn test_empty(){
        assert_eq!(non_double(&String::new()), 0);
    }

    #[test]
    fn test_one(){
        assert_eq!(non_double(&String::from("x")), 1);
    }
    
    #[test]
    fn test_six(){
        assert_eq!(non_double(&String::from("xyzxyz")), 6);
    }

    #[test]
    fn test_duplicate(){
        assert_eq!(non_double(&String::from("xxx")), 1);
    }

    #[test]
    fn test_double(){
        assert_eq!(non_double(&String::from("xyzzzzy")), 3);
    }
НЛО прилетело и опубликовало эту надпись здесь

по-питонски

def longest_diff(s) :
    def matches_to_lengths(iter, slen) :
        try :
            oldt = next(iter)
        except StopIteration :
            yield slen
            return
        yield oldt[0] + 1
        for t in iter :
            yield t[0] - oldt[1] + 1
            oldt = t
        yield slen - oldt[1]
    return max(matches_to_lengths(((m.start(), m.end())
                                   for m in re.finditer('(.)\\1', s)), len(s)))
print(longest_diff(sys.argv[1]))

Я проходил этот КЕГЭ году в 2012 вроде, когда его тестово запускали, по информатике был он

Мои поздравления со сдачей. И немного замечаний.
Питон — must have

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

Смею отметить, что спортивное программирование и олимпиады тренируют лишь навык решения чётко поставленных задача в стрессовых условиях, не более. Хорошо для экзамена, хорошо для собеседования (в те компании, которые требуют решать подобные задачи на собеседовании). Но совершенно бесполезны и, не побоюсь этого слова, вредны в реальной практике. Вредны, потому что учат решать лишь чётко поставленные задачи. А на практике, по моему опыту, таких задач очень мало. Особенно, когда вы перерастете уровень junior'а.
Образно говоря, придет к вам заказчик (необязательно сторонний, это может быть ваш тимлид или менеджер) и скажет: «Хочу то-то. Сделай.». И вы, как инженер, должны не только определить то, как решить эту задачу и как сделать это оптимально, но для начала определить, надо ли её решать вообще — может она уже решена. А может она вообще не стоит. Или вместо неё надо решить совсем другую задачу.
По моему, опять же, опыту не все умеют решать такие нечёткие задачи, да ещё в условиях недостатка информации. Это уже чистой воды творчество. Изобретательство.
Тут можно поспорить, сказав, что надо, дескать, нормально задачи формулировать. Но лично в моей практике последний год задачи такие, что формулируя задачу, ты уже её решаешь. Тогда зачем её делегировать? Проще продолжать самому решать раз уж начал.
А насчет изучения алгоритмов всё верно, надо изучать. Но не учить наизусть, ни в коем случае. Изучать описание, пытаться понять как алгоритм работает и почему он устроен именно так, а не иначе. Пытаться реализовать этот алгоритм, причем лучше на нескольких языках с разными парадигмами. Тупое же заучивание абсолютно ничего не даст.
стрессовые условия — это основное, на что жалуются сдающие ЕГЭ. Поэтому навык, полученый на олимпиадах (не только по программированию) — хорошее подспорье для сдачи экзамена.
Ну и в жизни, увы, порой приходится создавать технический долг, решая задачи в стрессовых условиях потому, что «надо здесь и сейчас».

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

Спасибо за отличный комментарий. Насчёт питона я имел ввиду, что на КЕГЭ с этим языком можно очень быстро решать небольшие задачки. Буквально пара строк и уже можно получить балл за задачу. Поэтому я его выделили в своей статье

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

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

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

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

Тем, что в других языках найти и заюзать стандартную библиотеку это *сложно*. В плюсах нужны какие-то инклюды и мудреные сигнатуры (напишете, не подглядывая, компаратор для сортировки в плюсах?), в паскале вроде их тупо нет. А в питоне банальные sort/min/max идут из коробки и используются интуитивным образом, поэтому, если зазеваться, то на самом деле можно пропустить эти символы во время анализа сложности.

Аргументы какие-то из пальца высосанные. Если зазеваться как следует, можно что угодно пропустить. В современном паскале (PascalABC.NET), кстати, стандартная библиотека цельнотянутая из .NET, там есть всё то же, что и в C#. Или он, как и питон, не годится по причине "можно случайно массив отсортировать"?

сдавал ЕГЭ по информатике еще в 2009. Было все на бумажке. В итоге не засчитали вообще одну задачу из-за неэффективного алгоритма. Не стал тогда подавать апелляцию - не стал рисковать

Что-то не очень похоже, что автор сдавал КЕГЭ(так он кратко называется) в этом году. Или забыл "нюансы".

  1. Как таковых частей нет. Есть 27 заданий. 1-23 - графы, булева алгебра, таблицы (обычные, не электронные), кодирование, системы счисления, алгоритмы, офисные пакеты (текстовый процессор, эл.таблицы), 24-27 - программирование.

  2. Текст программы никуда не записывается(!) и никто его не проверяет, только результат работы программы. Соответственно эффективно-неэффективно - не важно, лишь бы результат был правильный. За задачи 24-27 дают 2 балла, остальные 1. Список ЯП и сред утверждает регион. В связи с этим самой распространенной проблемой было непонимание отдельных учеников разницы между MS VS Code и MS VS 2019 и соответственно неумение запускать программу в MS VS Code с прикрученным minigw-64 (у меня сдавались только на C++, C# и python)

По зависанию. В "каждой избушке свои погремушки". У нас в СПб прямого запрета на "помощь с зависшей программой" не было, поэтому на пробнике и самом КЕГЭ пару раз приходилось "вышибать" python с "бесконечным циклом".

Вторая часть в КЕГЭ существует. Сам экзамен состоит из 27 заданий, задания с кратким ответом - 23 (1 часть) и остальные 4 - с развернутым (2 часть). https://inf-ege.sdamgia.ru/manual. Хотя в спецификации экзамена сказано только что экзамен делится на уровни сложности: Б - базовый, П - повышенный, В - высокий, но 24-27 привычнее называть 2 частью, потому что, грубо говоря, так и есть. А текст программы хоть никто и не проверяет, но для проверки заданий из 2 части есть два файла: один небольшого размера, а второй огромного. Неэффективным способом, соответственно, результат для файла Б получить не удастся.

На задания 24-27 ответы такие же, как и на остальные, т.е. либо одно число, либо несколько. И два файла - большой и маленький - только у 27го задания. Не знаю, как картинку вставить, но на тренажере Полякова посмотреть можно, только у него второй файл 60К записей, а на КЕГЭ было 1М.

Надо сказать что прогресс поражает. Я заканчивал школу 20 лет назад и у нас экзамен по информатике вообще не подразумевал программирования.

НЛО прилетело и опубликовало эту надпись здесь

Распространяется через местные РЦОИ(региональный центр обработки информации) и ИМЦ(информационно-методический центр)

НЛО прилетело и опубликовало эту надпись здесь

Среди организаторов ЕГЭ распространяется, причаститься никак. В интернете можно найти демо-версии, например: https://kpolyakov.spb.ru/school/ege/kege/start.htm Насколько они приближены к реальной станции записи ответов, мне неизвестно.

Внешне довольно похоже.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории