Решения задач с «ACMP - Школа программиста»






На нашем сайте представлены решения задач по программированию с сайта acmp.ru на языке C++, по таким темам как:

  • Условные операторы и операторы цикла
  • Строковые типы данных, строки
  • Одномерные и двумерные массивы
  • Функции
  • Сортировки
  • Рекурсия
  • Целочисленная арифметика, длинная арифметика
  • Теория графов
  • Структуры данных


Номер задачиНазвание задачиЗадача 
 
1117Конец уроковКонец уроков.

В некоторой школе занятия начинаются в 9:00. Продолжительность урока – 45 минут, после 1-го, 3-го, 5-го и т.д. уроков перемена длится 5 минут, а после 2-го, 4-го, 6-го и т.д. – 15 минут.

По номеру урока требуется определить время его окончания.

Входные данные

Входной файл INPUT.TXT содержит целое число от 1 до 10 – номер урока.

Выходные данные

В выходной файл OUTPUT.TXT выведите два целых числа: время окончания урока в часах и минутах.
1118УлиткаУлитка.

Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а за ночь спускаясь на B метров. На какой день улитка доползет до вершины шеста?

Входные данные

Входной файл INPUT.TXT содержит натуральные числа H, A и B. Ограничения: H ≤ 1000, B < A ≤ 100.

Выходные данные

В выходной файл OUTPUT.TXT выведите натуральное число – количество дней, необходимых улитке для достижения вершины шеста.
25Больше-меньшеОдна из основных операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа.

Входные данные
В двух строчках входного файла INPUT.TXT записаны числа A и B, не превосходящие по абсолютной величине 2×109.

Выходные данные
Запишите в выходной файл OUTPUT.TXT один символ “<”, если A < B, “>”, если A > B и “=”, если A=B.
8АрифметикаВ прошлом году Вася пошел в школу и научился считать. В этом году он изучил таблицу умножения и теперь умеет перемножать любые числа от 1 до 10 без ошибок. Друг Петя рассказал ему про системы счисления, отличные от десятичной. В частности, про двоичную, восьмеричную и даже шестнадцатеричную. Теперь Вася без труда (но уже с помощью листка и ручки) может перемножать числа от 1 до 10 и в этих системах, используя перевод из нестандартной системы в десятичную и обратно из десятичной. Например, если Васе нужно перемножить числа 101 и 1001 в двоичной системе, то он сначала эти числа переводит в десятичное представление следующим образом:

(101)2=1*22+0*21+1*20=4+0+1=5

(1001)2=1*23+0*22+0*21+1*20=8+0+0+1=9

После чего перемножение чисел 5 и 9 Вася с легкостью производит в десятичной системе счисления в уме и получает число 45. Далее производится перевод из десятичной системы счисления в двоичную. Для этого Вася делит число 45 на 2 (порядок системы счисления), запоминая остатки от деления, до тех пор пока в результате не останется число 0:

Первод из десятичной системы счисления в двоичную
Ответ составляется из полученных остатков от деления путем их записи в обратном порядке. Таким образом Вася получает результат: (101)2 * (1001)2 = (101101)2. Но теперь Вася изучает таблицу умножения чисел от 1 до 100 в десятичной системе счисления, а поскольку запомнить такую таблицу очень сложно, то Васе придется очень долго ее зубрить. Составьте для Васи программу, которая поможет ему проверять свои знания.

Входные данные
Во входном файле INPUT.TXT записаны три натуральных числа A, B и C через пробел. Числа A и B ≤ 102, а C ≤ 106.

Выходные данные
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
52Счастливый билетВы пользуетесь общественным транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют такой билет с шестизначным номером, где сумма первых трех цифр равна сумме последних трех. Т.е. билет с номером 385916 – счастливый, т.к. 3+8+5=9+1+6. Вам требуется написать программу, которая проверяет счастливость билета.

Входные данные
В единственной строке входного файла INPUT.TXT записано одно целое число N (0 ≤ N < 106).

Выходные данные
В выходной файл OUTPUT.TXT нужно вывести «YES», если билет с номером N счастливый и «NO» в противном случае.
21ЗарплатаВ отделе работают 3 сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.

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

Выходные данные
В выходной файл OUTPUT.TXT необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.
61БаскетболИзвестны результаты каждой из 4х четвертей баскетбольной встречи. Нужно определить победителя матча.

Входные данные
Входной файл INPUT.TXT содержит 4 строки, в каждой строке находится два целых числа a и b – итоговый счет в соответствующей четверти. а – количество набранных очков за четверть первой командой, b – количество очков, набранных за четверть второй командой. (0 ≤ a,b ≤ 100).

Выходные данные
В выходной файл OUTPUT.TXT выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
324Четырехзначный палиндром Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево.

Входные данные
Входной файл INPUT.TXT содержит натуральное число N (1000 ≤ N ≤ 9999).

Выходные данные
В выходной файл OUTPUT.TXT следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет.
539ТортНа свой день рождения Петя купил красивый и вкусный торт, который имел идеально круглую форму. Петя не знал, сколько гостей придет на его день рождения, поэтому вынужден был разработать алгоритм, согласно которому он сможет быстро разрезать торт на N равных частей. Следует учесть, что разрезы торта можно производить как по радиусу, так и по диаметру.

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

Входные данные
Входной файл INPUT.TXT содержит натуральное число N – число гостей, включая самого виновника торжества (N ≤ 1000).

Выходные данные
В выходной файл OUTPUT.TXT выведите минимально возможное число разрезов торта.
754Три толстякаТри толстяка решили поспорить: кто из них самый тяжелый. После взвешивания оказалось, что их масса соответственно M1, M2 и M3 килограмм. Считается, что масса толстяка должна быть не менее 94 и не более 727 килограмм.

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

Входные данные
Входной файл INPUT.TXT содержит три целых числа M1, M2 и M3, разделенные пробелом. Все числа целые и не превосходят 10 000 по абсолютной величине.

Выходные данные
В выходной файл OUTPUT.TXT выведите массу самого тяжелого толстяка в случае корректного взвешивания, либо слово «Error» в противном случае.
685Золотой песокСотрудники завода по производству золотого песка из воздуха решили поправить свое финансовое положение. Они пробрались на склад завода, где хранился золотой песок трех видов. Один килограмм золотого песка первого вида они смогли бы продать за A1 рублей, второго вида – за A2 рублей, а третьего вида – за A3 рублей. Так получилось, что у сотрудников оказалось с собой только три емкости: первая была рассчитана на B1 килограмм груза, вторая на B2 килограмм, а третья на B3 килограмм. Им надо было заполнить полностью все емкости таким образом, чтобы получить как можно больше денег за весь песок. При заполнении емкостей нельзя смешивать песок разных видов, то есть, в одну емкость помещать более одного вида песка, и заполнять емкости песком так, чтобы один вид песка находился более чем в одной емкости.

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

Входные данные
В единственной строке входного файла INPUT.TXT записано 6 натуральных чисел A1, A2, A3, B1, B2, B3, записанных в одной строке через пробел. Все числа не превосходят 100.

Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести единственное целое число – сумму в рублях, которую смогут сотрудники заработать в случае наилучшего для себя заполнения емкостей песком.
1119ЛадьяНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, ладья может перемещаться на любое расстояние, как по вертикали, так и по горизонтали.

Требуется определить: может ли ладья выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату ладьи. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
1120СлонНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, слон может перемещаться на любое расстояние по диагонали.

Требуется определить: может ли слон выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату слона. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
1121ФерзьНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, ферзь может перемещаться на любое расстояние по вертикали, горизонтали и диагонали (может ходить как ладья и слон).

Требуется определить: может ли ферзь выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату ферзя. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
1122КорольНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, король может перемещаться на соседнюю клетку по вертикали, горизонтали и диагонали.

Требуется определить: может ли король выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату короля. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
1123КоньНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, конь ходит буквой «Г», т.е. на поле, находящееся на расстоянии 2 по вертикали и 1 по горизонтали или 1 по вертикали и 2 по горизонтали.

Требуется определить: может ли конь выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату коня. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
1124ПешкаНапомним, что в шахматах используется клеточная доска размером 8х8, где располагаются шахматные фигуры, которые могут перемещаться по определенным правилам. В частности, пешка ходит на 1 поле вперед по вертикали, начиная в начале игры свое движение со второй линии, при первом ходе пешка может перемещаться на 2 поля вперед по вертикали. Будем рассматривать только свободный ход пешки, т.е. тот случай, когда пешка перемещается в пустое поле.

Требуется определить: может ли пешка выполнить ход из клетки с координатами (X1,Y1) в клетку с координатами (X2,Y2) на стандартной шахматной доске?

Входные данные
Первая строка входного файла INPUT.TXT содержит два целых числа X1 и Y1 – начальную координату пешки. Во второй строке записана конечная координата – целые числа X2 и Y2 (1 ≤ X1,Y1,X2,Y2 ≤ 8). Гарантируется, что начальная и конечная координаты не совпадают.

Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если ход является допустимым, и «NO» - в противном случае.
935Шахматное полеНа стандартной шахматной доске 8х8 заданы координаты двух клеток. Требуется определить: имеют ли данные клетки одинаковый цвет?

Входные данные
Входной файл INPUT.TXT содержит целые числа x1, y1, x2, y2, описывающие координаты двух клеток (x1,y1) и (x2,y2). Ограничения: 1 ≤ x1,y1,x2,y2 ≤ 8.

Выходные данные
В выходной файл OUTPUT.TXT выведите YES, если поля одного цвета, или слово NO в противном случае.
62КлеткиИзвестно, что шахматная доска имеет размерность 8х8 и состоит из клеток 2х цветов, например, черного и белого (см. рисунок). Каждая клетка имеет координату, состоящую из буквы и цифры. Горизонтальное расположение клетки определяется буквой от A до H, а вертикальное – цифрой от 1 до 8. Заметим, что клетка с координатой А1 имеет черный цвет. Требуется по заданной координате определить цвет клетки.

Входные данные
В единственной строке входного файла INPUT.TXT записана координата клетки на шахматной доске: всего два символа – буква и цифра (без пробелов).

Выходные данные
В выходной файл OUTPUT.TXT нужно вывести «WHITE», если указанная клетка имеет белый цвет и «BLACK», если она черная.
970От перестановки что-то меняется ...Всем известно, что «от перестановки слагаемых сумма не изменяется». Однако, случается и так, что перестановка двух чисел приводит к более интересным последствиям.

Пусть, например, заданы три числа: a1, a2, a3. Рассмотрим равенство a1+ a2= a3. Оно может быть неверным (например, если a1= 1, a2= 4, a3= 3), однако может стать верным, если поменять некоторые числа местами (например, если поменять местами a2 и a3, оно обратится в равенство 1 + 3 = 4).

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

Входные данные
Входной файл INPUT.TXT содержит три целых числа: a1, a2, a3 (−108 ≤ a1, a2, a3 ≤ 108).

Выходные данные
В выходной файл OUTPUT.TXT выведите слово «YES», если заданные числа можно переставить так, чтобы сумма первых двух равнялась третьему. В противном случае выведите в выходной файл слово «NO».