• Как готовиться к олимпиадам?

    @tomatho
    Не знаю на счёт других областей, так что пишу только про ACM ICPC и смежные (похожие) так:
    Чтоб стать крутым, надо ежедневно по 2-3 часа минимум решать задачи в день.
    На всевозможных сайтах агрегаторах задач типа codeforces.ru, opencup.ru, topcoder.com, google codejam, acm.timus.ru и много много других.
    Участвовать во всех проходящих онлайн соревнованиях.

    Напоминает правило 10 тысяч часов. Есть такое мнение, что люди становятся профессионалами не из-за таланта, а по факту вложения человеко-часов в своё занятие.
    Однако, есть и уникумы, по типу Геннадия Короткевича (загугли, почитай).
    Лучшим в любой области стать почти невозможно. Однако шанс есть.

    Я дальше полуфинала ACM ICPC не проходил, так как был слишком ленив и решал задачи пару раз в месяц.
    Ах, совсем забыл: для чемпионства важен опытный тренер. Чтобы не тратить время на всякую чушь, и эффективнее "качаться".

    Ещё: я бы предпочел обсуждение с матёрым олимпиадником конкретного алгоритма, чем чтение литературы по онному. Очень важно скорость написания алгоритма, и легкая запоминаемость. Какие-то приёмы по его хорошему модифицированию, если в задаче требуется его мелкая модификация. Чтение кода лидеров тоже не повредит, чтобы понять как элегантнее написать.

    Многие простейшие алгоритмы можно написать элегантно и быстро, а можно долго мозговать а тут +1 индекс, или -1. А тут надо сколько прибавить? А условие <= или <. Очень много нюансов.
    Так же не повредит психологическая подготовка, если тренер могёт. Так как например меня трижды клинило на ответственных соревнованиях. Дважды на полуфинале ACM ICPC: сидишь как бревно, ничего не соображаешь, переволновался. И один раз на ВКОШП.
    Потом как только соревнование кончается (время закончилось), так сразу спадает волнение и начинаешь смотреть на задачи и думать: Что?!?! И это я не смог решить?!?!
    Ответ написан
    1 комментарий
  • Что умеет настоящий senior/lead developer кроме знания какого-то языка и его фреймворков?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Чему стоит научиться за первые курсы для того чтобы повысить свою "цену" как разработчика в будущем?

    Нужно сразу "накапливать" портфолио, даже если это просто сайтик друзьям.
    Нужно знать, чем вы таки хотите заниматься и определиться с основным языком.
    Под основной язык стоит сразу изучить самую качественную IDE.
    Стоит сразу изучить git и хранить все свои проекты там.
    Начать работать, пусть и за еду, это ваш опыт.

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

    Что умеет настоящий senior/lead developer кроме знания какого-то языка и его фреймворков?

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

    Тимлид - это как синьйор + управленец.
    Ответ написан
    Комментировать
  • Как составить план обучения?

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

    Вам и в университете не дадут его "в том объеме". Университет отличается от школы/пту/что-то там еще тем что в университете не учат, а дают возможность выучиться. Преподаватели в университете могут вас направить (если вам это нужно и у вас есть тяга к знаниям), посоветовать литературу, ответить на ваши вопросы, рассказать о каких-то тонкостях, посоветовать откуда узнать о других тонкостях и т.д.

    Собственно, что делать? Стоит ли бросать читать книгу и учить только то, что дают или продолжить читать и книгу, но как тогда это совмещать?

    Хотите заниматься саморазвитием - занимайтесь. Вам интересен С++ - изучайте его.
    Совмещать очень легко - не надо спать до 2-ух дня :) Как же люди совмещают 2 работы, или работу и очное обучение в университете, или работу и очное обучение в университете и хобби и игру в мморпг еще? :) А вы не можете совместить учебу с чтением всего 1 книги? Простите за прямолинейность, но вам или не настолько интересен/важен С++ или вы попросту лентяй и "пришли" сюда чтобы перед самим собой найти оправдание собственной лени.
    Ответ написан
    Комментировать
  • Что я не учел в моем решении?

    @krikyn Автор вопроса
    Задача решена. Может кому-то пригодиться решение
    #include<iostream>
    #include<stdio.h>
    #include<queue>
    #include<set>
    #include<functional>
    #include<stack>
    #include<iterator>
    #include<algorithm>
    #include<math.h>
    #include<limits>
    
    using namespace std;
    
    int main()
    {
        int n,x,a[100009],b[100009],mina,mini,a2=-2,b2=-2;
        cin>>n>>x;
        int maxs = x;
    
        for (int i=0; i<n; i++)
            cin>>a[i];
        for (int i=0; i<n; i++)
            cin>>b[i];
    
        mina = a[0];
        mini = 0;
    
        for (int i=1; i<n; i++)
        {
            if (((x/mina)*b[i]+x%mina)>maxs)
            {
                maxs = (x/mina)*b[i]+x%mina;
                a2 = mini;
                b2 = i;
            }
    
            if (a[i]<mina)
            {
                mina = a[i];
                mini=i;
            }
        }
    
        cout<<maxs<<endl;
        cout<<a2+1<<" "<<b2+1;
        return 0;
    }


    Моя ошибка была в том, что я не учитывал сдачу от покупки акций
    Ответ написан
    Комментировать
  • Куда можно бесплатно опубликовать android игру?

    @Meyvorrrata
    В Вк существуют специальные группы android программистов, художников и т.п., и в некоторых топиках разрешается выкладывать свою игру
    Ответ написан
    Комментировать
  • Какие технологии стоит освоить?

    kumaxim
    @kumaxim
    Web-программист
    Если будешь копать именно в веб - начни освоение с Ruby и его замечательного фреймворка Ruby on Rails.

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

    В универе учат всех писать на C# & ASP.NET, но лично я из этой технологии ушел, т.к. фреймворк проприетаренный и на Linux в то время работал крайне плохо.

    Если бэк-энд технологии не потянешь, тогда или в сторону фронт-энд.
    Языка CSS, HTML, JavaScript. Фреймоворки Angular(javascript) и Bootstrap(css)
    Ответ написан
    3 комментария
  • Каков алгоритм и суть работы реально существующего скрипта 100% предсказания результата, загаданного человеком?

    @Eddy_Em
    Советую почитать "математические фокусы" Якова Исидоровича. Откроете для себя много новой "магии".
    Ответ написан
    Комментировать
  • Что происходит в этом коде?

    @encyclopedist
    Выражение
    n & 1выделяет младший бит числа n (& - это побитовое "и").
    r |= n & 1эквивалентно (| - это побитовое "или")
    r = r | (n & 1)
    То есть это выражение в целом берет младший бит переменной n и помещает его в переменную r.
    Ответ написан
    Комментировать
  • Какая сортировка самая быстрая?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Если есть память на ещё один массив из 100000 элементов, то быстрее всего будет работать сортировка подсчётом:

    void CountSort(int *A1,int *A2,int L,int Nmax){
    for(int i=0;i<=Nmax;i++) A2[i]=0;
    for(int i=0;i < L;i++) A2[A1[i]]++;
    int s=0;
    for(int i=0;i<=Nmax;i++) for(int j=0;j < A2[i];j++) A1[s++]=i;
    }

    Здесь A1 - сортируемый массив, A2 - дополнительный массив длиной Nmax+1.
    У меня получилось среднее время 0.88 миллисекунды. Для сравнения, std::sort даёт на тех же примерах 7.2 миллисекунды - в 8 раз больше.
    Возможно, радикс-сортировка по модулю 256 даст ещё меньшее время (она не так агрессивно работает с памятью). Но она в 4 строчки не уместится.
    Ответ написан
    1 комментарий