Задать вопрос
  • Сможете ли Вы объяснить выбор приза в олимпиадной задачи?

    @AltQ
    Ваше решение верно, насколько я понял. Вот весь алгоритм:
    Предыдущая максимальная ценность = максимальная ценность = a1
    
    Цикл от 2 до n:
        Ai ≥ максимальной ценности?
            Да:
                вывести максимальную ценность
                предыдущая максимальная ценность = максимальная ценность
                максимальная ценность = Ai
    
            Нет:
                Ai > прошлой максимальной ценности?
                    Да:
                        вывести Ai
                        предыдущая максимальная ценность = Ai
    
                    Нет:
                        вывести прошлую максимальную ценность
    Ответ написан
    1 комментарий
  • Сможете объяснить решение олимпиадной задачи?

    Задача сводится к выяснению того, сколькими кубиками (не способами, а именно кубиками) может быть задана исходная сумма (нижних граней).
    Например, 1 может быть задано только 1-м кубиком, ответ - 1
    2 может быть задано как 1-м, так и 2-мя кубиками, ответ - 2
    3 может быть задано 1-м, 2-мя или 3-мя кубиками, ответ - 3.
    Рассмотрим 4. Может быть задано от 1-го до 4-х кубиками. Т.е. ответ - 4. Рассмотрим случай 2-х кубиков. Это могут быть комбинации 2 + 2 или 1 + 3, но оба они дадут одну и ту же сумму верхних граней: 6 + 6 - (2+2) или 6 + 6 - (1+3), что явно одно и то же.
    У разных же количеств кубиков сумма разная, так как разное кол-во 6-к (самых больших чисел).

    Итак, надо выяснить, сколькими кубиками можно задать сумму s. Понятно, что если s ≤ 6, то любым кол-вом от 1 до s. Но если s > 6, то одним кубиком уже не задать. Если s > 12 (6 * 2), то не задать уже и двумя.
    Т.е. если s > 6, надо вычесть 1, если s > 12, надо вычесть 2, если s > 18, то вычесть 3.
    Или, иначе говоря, если s > 6k, надо вычесть k. k можно посчитать как (s - 1) / 6 (целочисленное деление). Как только s становится больше 6k, то есть становится 6k + 1, получаем (6k + 1 - 1) / 6 = k. Если же s = 6k, то (6k - 1) / 6 = k - 1, что нам и надо.
    Т.о. результат: s - (s - 1) / 6, что эквивалентно вашей формуле, так как
    (s + 5) / 6 = (s - 1) / 6 - 1
    (s + 5) / 6 - 1 = (s - 1) / 6
    Ответ написан
    5 комментариев
  • Почему комментируется код php?

    Была похожая проблема: при вставке в html-файл код php и последующей загрузке страницы, весь код превращался в закомментированный в html'е текст.
    Решение нашлось достаточно быстро: я просто поменял кодировку файлов с php-кодом на utf-8.
    Возможно, это связано с кодировками внутри Apache.

    учебный год закончился, число «программистов» увеличилось
    А что в этом плохого? Те, кто начинают учиться программировать в школьные годы, будут уже иметь копилку знаний и опыта к институту.
    Ответ написан
    1 комментарий
  • Где правильнее проверять пользовательские данные? В контроллере или модели?

    IvanCher
    @IvanCher
    Мысли шире
    За работу с данными должна отвечать модель. Именно модель должна знать какие данные допустимы, а какие нет, потому что на ней лежит функция обработки/записи этих самых данных.
    У контролера цель - обрабатывать пользовательские запросы и решать, как на них ответить.
    Иными словами, вы принимаете данные с формы контролером и говорите модели сказать валидные ли данные пришли. Модель отвечает контролеру, контролер принимает решение, как на это ответить пользователю (ошибкой, каким-то конкретным представлением и т.п.).
    UPDATE
    MVC советую всем прочесть, прежде, чем давать странные советы. Особенно внимательно прочесть "Наиболее частые ошибки", как раз говориться, что делать из контролера Толстый Тупой Уродливый Контролер - не правильно по определению шаблона. Можно спорить сколько угодно, но об этом прямо многие авторитеты. Другое мнение сформировано отсутствием глубокого понимания MVC и малым опытом на крупных проектах.
    Ответ написан
    17 комментариев
  • Как сделать, чтобы div подстроился под высоту окна браузера?

    @IoannGrozny
    Front-end разработчик
    Зависит от контекста. Для современных браузеров подойдёт решение с CSS3 единицами 'vh';
    Для старых браузеров придётся задействовать javascript и отслеживать высоту экрана.
    caniuse.com/#feat=viewport-units - первый вариант, height: 100vh соответствует высоте окна браузера.
    https://api.jquery.com/height/ - второй вариант, $(window).height вернёт высоту окна браузера.
    По первому варианту:
    #hei {
        height: 100vh; /* 100vh - 100% от высоты viewport(окна браузера) */
    }

    По второму варианту:
    function setHeiHeight() {
        $('#hei').css({
            height: $(window).height() + 'px'
        });
    }
    setHeiHeight(); // устанавливаем высоту окна при первой загрузке страницы
    $(window).resize( setHeiHeight ); // обновляем при изменении размеров окна
    Ответ написан
    8 комментариев