Медали для всех, даром, и пусть никто не уйдет обыгранным!

Медали для всех, даром, и пусть никто не уйдет обыгранным!

Добрый день, уважаемые друзья! Глядя на нижеследующие ссылки (2011, 2012, 2013, 2014 — следует нажать ссылочку Standings), многие современники не спрашивают у меня, как прийти к подобным результатам. А зря. К сожалению, сам по себе ритуал еженедельного посещения кружка умелых информационных ручек с опцией прорешивания особо приглянувшихся задач способен перевести Вас лет за 5 из … Continue reading

С чего начать?

С чего начать?

Будем предполагать, что Ваша цель не просто изучить программирование, но и научиться решать задачи. Это означает, что Вы вероятно хотите получить в дальнейшем какую-то пользу от своих новых знаний и навыков, а не просто убиваете время. Сразу должен предупредить, что это потребует во много раз больше усилий, чем простое изучение синтаксиса и лексики С++, урду … Continue reading

Как не нужно решать задачи

Как не нужно решать задачи

Есть довольно подробные рекомендации, как нужно решать задачи по программированию (в т.ч. для студентов). В конце заметки я дам ссылки на одну из таких статей. Но я хотел бы сейчас привести наглядный пример того, как не надо решать задачи. Вот довольно простая задача про разрезание брусочка сыра (точнее прямоугольного параллелепипеда) на кубики со стороной 1. … Continue reading

Дистанционные учебные курсы

Дистанционные учебные курсы

Хочу порекомендовать пройти некоторые дистанционные учебные курсы на сайте Coursera. Чтобы не актуализировать постоянно ссылки и даты буду просто вставлять в начало ссылки. Надеюсь разберетесь на месте. Основы разработки на C++ №1 на русском Основы разработки на C++ №2 на русском Algorithms #1 на английском. Очень хороший и сложный курс. Algorithms #2 на английском. Такой … Continue reading

Образец: Принадлежит ли точка треугольнику?

Образец: Принадлежит ли точка треугольнику?

Задача. Даны три попарно не совпадающие и не лежащие на одной прямой точки [latex]A, B[/latex] и [latex]C[/latex], заданные своими координатами. Определить принадлежит ли точка [latex]D(x_d,y_d)[/latex] треугольнику [latex]ABC[/latex]. Сразу заметим, что задача легко обобщается для любого выпуклого многоугольника. Тесты В тестах нужно обязательно отразить следующие случаи: Точка строго вне треугольника Точка строго внутри треугольника Точка совпадает … Continue reading

e-olymp 4496. Приключение Незнайки и его друзей

e-olymp 4496. Приключение Незнайки и его друзей

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

e-olymp 8320. Заглавная строка

e-olymp 8320. Заглавная строка

Условие Обычная задача обработки текстов — преобразовать первую букву каждого слова в строке в заглавную. Задана строка, содержащая слова из прописных букв, разделенных одним или несколькими пробелами. Выведите идентичную ей строку, за исключением того что первую букву каждого слова следует сделать заглавной. Входные данные Строка из слов, состоящих из прописных букв $’a’$ — $’z’$, разделенных … Continue reading

e-olymp 972. Сортировка времени

e-olymp 972. Сортировка времени

Задача Отсортируйте время согласно заданному критерию Входные данные Сначала задано число $n\, \left ( 1\leqslant n\leqslant 100 \right )$, а затем n моментов времени. Каждый момент времени задается 3 целыми числами — часы (от 0 до 23), минуты (от 0 до 60) и секунды (от 0 до 60) Выходные данные Выведите моменты времени, упорядоченные в … Continue reading

e-olymp 1442. Одномерная Кликомания

e-olymp 1442. Одномерная Кликомания

Задача «Одномерная Кликомания» — это логическая компьютерная игра. Для нее используется полоска размеров $1 \times N$, разбитая на $N$ квадратов $1 \times 1.$ Каждый из квадратов окрашен в красный или желтый цвет. За один ход игрок может выбрать любой из квадратов и щелкнуть по нему мышкой. В результате компьютер выделяет на полоске группу максимальной длины, … Continue reading

e-olymp 2667. Змейка

e-olymp 2667. Змейка

Задача Напишите программу, которая выводит элемент из строки $x$ и столбца $y$ матрицы размера $n × m$, которая заполнена змейкой: Входные данные Даны натуральные числа $n, m, x, y (1 \leqslant x \leqslant n \leqslant 50, 1 \leqslant y \leqslant m\leqslant 50)$. Здесь $n$- количество строк матрицы, $m$ — количество столбцов матрицы, $x$ и $y$ — … Continue reading

e-olymp 845. Открытка и конверт

e-olymp 845. Открытка и конверт

Задача Даны размеры прямоугольных открытки и конверта. Требуется определить, поместится ли открытка в конверт. Входные данные В первой строке находятся размеры открытки, во второй — размеры конверта. Размеры открытки и конверта — целые положительные числа, не превосходящие $100.$ Выходные данные Если открытку можно вложить в конверт, вывести $Possible,$ если нет — вывести $Impossible$. Тесты   … Continue reading

e-olymp 145. Квадраты

e-olymp 145. Квадраты

Задача взята с сайта e-olymp Задача Заданы длины $n$ отрезков. Какое наибольшее количество квадратов можно из них составить? Сторона каждого квадрата должна состоять только из одного отрезка. Входные данные В первой строке находится количество отрезков $n \left(1 \leqslant n\leqslant 10^6\right)$. Во второй строке заданы $n$ натуральных чисел — длины отрезков, числовые значения которых не превышают $100$. Выходные данные … Continue reading

e-olymp 4749. Выручка театра

e-olymp 4749. Выручка театра

Задача В театре $n$ рядов по $m$ мест в каждом. Даны две матрицы — в первой записаны стоимости билетов. Вторая сообщает, какие билеты проданы, а какие — нет ($1$ — соответствующий билет продан, $0$ — не продан). Определите общую выручку от спектакля. Входные данные Сначала записано число $n$, затем число $m$ $(n, m \le 500)$. … Continue reading

e-olymp-8577. Супер платформи

Условие У багатьох старих іграх з двовимірною графікою можна зіткнутися з такою ситуацією. Який-небудь герой стрибає по платформам (або острівкам), які висять у повітрі. Він повинен перебратись від одного краю екрану до іншого. При цьому, при стрибку з однієї платформи на сусідню, у героя витрачається $\left|y_2–y_1\right|$енергії, де $y_2$ та $y_1$ – висоти, на яких розміщені ці платформи. Крім … Continue reading

e-olymp 8379. Нулі та одиниці

Задача взята с сайта e-olymp. Задача Їжачок Аліна, переглядаючи свої старі зошити знайшла в одному з них неймовірно цікавий масив з нулів. Виявилось, що Аліна з цим масивом вміє робити кілька неймовірно цікавих операцій: Присвоїти елементу в позиції $x$ значення $1.$ Присвоїти елементу в позиції $x$ значення $0.$ Замінити на відрізку від $l$ до $r$ всі … Continue reading

e-olymp 657. Игра с монетами

e-olymp 657. Игра с монетами

Задача взята с сайта e-olymp Условие Однокопеечные монетки разложены в стопки (в стопках может быть различное количество монет), а стопки поставлены на столе в ряд слева направо. Двое противников по очереди делают ходы. Ход состоит в том, что один из игроков берет слева несколько стопок подряд, не меньше одной, но и не больше, чем перед … Continue reading

e-olymp 8649. Емблема (Emblem)

Умова До проведення $N$-ї ярмарки «Мікротехнології у макропрограмуванні» дизайнери розробили емблему, у якій на квадрат розміром $N \times N$ дм «ставився зверху» квадрат розміром $\left(N-1\right) \times \left(N-1\right)$ дм і так далі. Зверху був квадрат $1 \times 1.$ В цілому організаторам емблема сподобалася, але вони забажали «прикрасити» її золотистою стрічкою, яка йшла б від лівого нижнього … Continue reading

e-olymp 972. Сортировка времени

e-olymp 972. Сортировка времени

Задача Отсортируйте время согласно заданному критерию. Входные данные Сначала задано число $n$ $\left(1 \leqslant n \leqslant 100 \right),$ а затем $n$ моментов времени. Каждый момент времени задается $3$ целыми числами — часы (от $0$ до $23$), минуты (от $0$ до $60$), и секунды (от $0$ до $60$). Выходные данные Выведите моменты времени, упорядоченные в порядке неубывания (момент времени также … Continue reading

e-olymp 1344. Личные дела

e-olymp 1344. Личные дела

Задача Однажды, неловкая секретарша перепутала личные дела учащихся. Теперь их снова необходимо упорядочить сначала по классам, а внутри класса по фамилиям. Входные данные В первой строке дано число $N \left(1 \leqslant N \leqslant 1000\right)$ – количество личных дел. Далее для каждого из $N$ учащихся следующие данные (каждое в своей строке): фамилия и имя, класс, дата … Continue reading

e-olymp 683. Частичная сумма матрицы

Задача Задана матрица чисел $a_{ij}$ где $1 \leqslant i \leqslant n$, $1 \leqslant j \leqslant m$. Для всех $i, j$ найдите $$S_{i,j}=\sum_{k=1, t=1}^{k\leqslant i, t \leqslant j}a_{kt}.$$ Входные данные В первой строке записаны размеры матрицы — $n, m$ $(1 \leqslant n, m \leqslant 1000)$. В последующих $n$ строках записано по $m$ чисел $a_{ij}$ $(1 \leqslant … Continue reading

e-olymp 8367. Таксі

e-olymp 8367. Таксі

Задача Аліна хоче замовити таксі через один відомий додаток. Одразу декілька водіїв готові приїхати на її замовлення. Проте Аліна — дівчинка відповідальна, вона бажає поїхати із найдосвідченішим таксистом, тобто з тим, який вже здійснив найбільшу кількість перевезень. Але ось невдача — додаток не показує кількість перевезень, здійснених водієм. Єдина інформація, якою володіє Аліна — рейтинг … Continue reading

e-olymp 8651. Браслети (Bangles)

e-olymp 8651. Браслети (Bangles)

Задача взята з сайту e-olymp Шпигунам-конкурентам вдалося потрапити на склад запасних частин фірми «Magic & Stupidity», яка виготовляла магічні браслети. Стало зрозуміло, що всі браслети складалися з чотирьох різних деталей, кожна з яких мала на кінцях замки різних типів (розрізнялися за номерами). Вони з’єднувалися по колу, причому у сусідніх частин замки повинні мати однаковий номер. … Continue reading

e-olymp 8655. Простая сумма

Даны три целых числа x, m и n. Вычислите $(1 + x + x^2 + \ldots + x^m) (mod\quad n)$. Задача взята с сайта e-olymp Входные данные Первая строка содержит количество тестов. Каждая следующая строка содержит три целых числа $x, m$ и $n (1 \le x, m, n \le 10^{16})$. Выходные данные Для каждого теста … Continue reading

e-olymp 685. Сумма на параллелепипеде

Задача Задана трехмерная таблица чисел [latex]a_{ijt}[/latex], где [latex]1\leq i\leq n[/latex], [latex]1\leq j\leq m[/latex], [latex]1\leq t\leq k[/latex]. Для заданных [latex]l_{x}, l_{y}, l_{z},r_{x}, r_{y}, r_{z}[/latex] найдите [latex]S_{l_{x}, l_{y}, l_{z},r_{x}, r_{y}, r_{z}}=\sum\limits_{i=lx,j=ly,t=lz}^{i\leq rx,j\leq ry,t\leq rz}a_{ijt}[/latex] Входные данные В первой строке записаны размеры таблицы — [latex]n, m, k \left ( 1\leq n, m, k\leq 100 \right )[/latex]. Далее записано … Continue reading

e-olymp-751. Клад

e-olymp-751. Клад

Условие Найти закопанный пиратами клад просто: всё, что для этого нужно – это карта. Как известно, пираты обычно рисуют карты от руки и описывают алгоритм нахождения клада так: «Встаньте около одинокой пальмы. Пройдите тридцать шагов в сторону леса, потом семнадцать шагов в сторону озера, …, наконец десять шагов в сторону большого булыжника. Клад находится под … Continue reading