Acmp ru решение задач паскаль

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

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

Задана целочисленная матрица, состоящая из N строк и M столбцов. Требуется транспонировать ее относительно горизонтали.

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

В выходной файл OUTPUT.TXT выведите матрицу, полученную транспонированием исходной матрицы относительно горизонтали.

141 Дерево Неориентированный граф без петель и кратных ребер задан матрицей смежности. Требуется определить, является ли этот граф деревом.

Во входном файле INPUT.TXT записано сначала число N — количество вершин графа (от 1 до 100). Далее записана матрица смежности размером N×N, в которой 1 обозначает наличие ребра, 0 — его отсутствие. Матрица симметрична относительно главной диагонали.

В выходной файл OUTPUT.TXT выведите сообщение YES, если граф является деревом, и NO в противном случае.

1 A+B A+B.

Требуется сложить два целых числа А и В.

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

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.

108 Неглухой телефон Неглухой телефон.

Возможно, что Вы когда то играли в игру «Глухой телефон», либо слышали о ней. В этой игре участникам приходится передавать информацию друг другу различными способами: словесно, образно, бывает даже приходится писать левой рукой текст, который другой участник команды должен будет прочитать. Так же известно, что практически никогда передаваемая информация не доходит до конечного адресата. Обозначим за Fi(x) функцию, которая преобразует текст передаваемой информации x в ту, которую получит участник i+1 от участника i. Тогда последний n-й участник получит данные y, которые будут выражаться следующей формулой:

Но Вам необходимо исключить какие-либо внешние факторы, которые могут исказить исходную информацию и Вы должны реализовать программу «неглухой телефон», которая сможет безошибочно доставлять исходные данные, т.е. в нашем случае функция Fi(x) = x для всех i от 1 до n-1.

В единственной строке входного файла INPUT.TXT записано натуральное число от 1 до 100.

В выходной файл OUTPUT.TXT нужно вывести в точности то же число, которое задано во входном файле.

903 Бисер Бисер.

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

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

Входной файл INPUT.TXT содержит одно натуральное число N — количество цветов бусин (1 ≤ N ≤ 109).

В выходной файл OUTPUT.TXT выведите ответ на поставленную задачу.

195 Эния Эния.

Неспокойно сейчас на стапелях шестого дока межгалактического порта планеты Торна. Всего через месяц закончится реконструкция малого броненесущего корвета “Эния”. И снова этому боевому кораблю и его доблестной команде предстоят тяжелые бои за контроль над плутониевыми рудниками Сибелиуса. Работа не прекращается ни на секунду, лазерные сварочные аппараты работают круглые сутки. От непрерывной работы плавятся шарниры роботов-ремонтников. Но задержаться нельзя ни на секунду.

И вот в этой суматохе обнаруживается, что термозащитные панели корвета вновь требуют срочной обработки сульфидом тория. Известно, что на обработку одного квадратного метра панели требуется 1 нанограмм сульфида. Всего необходимо обработать N прямоугольных панелей размером A на B метров. Вам необходимо как можно скорее подсчитать, сколько всего сульфида необходимо на обработку всех панелей “Энии”. И не забудьте, что панели требуют обработки с обеих сторон.

Во входном файле INPUT.TXT содержатся 3 целых положительных числа N (N ≤ 100), A (A ≤ 100), B (B ≤ 100)

В выходной файл OUTPUT.TXT нужно вывести единственное число – вес необходимого для обработки сульфида тория в нанограммах.

1109 Следующее и предыдущее Следующее и предыдущее.

Напишите программу, которая считывает целое число и выводит текст с упоминанием следующего и предыдущего для него чисел.

Входной файл INPUT.TXT содержит целое число, не превосходящее 1000 по абсолютной величине.

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

33 Два бандита Два бандита.

Бандиты Гарри и Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под кока-колы (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку.

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

Определите по этим данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри.

В единственной строке входного файла INPUT.TXT записано 2 числа — количество банок, простреленных Гарри и Ларри соответственно.

В файл OUTPUT.TXT выведите 2 числа — количество банок, не простреленных Гарри и Ларри соответственно.

3 Пятью пять — двадцать пять! Пятью пять — двадцать пять!

Вася и Петя учатся в школе в одном классе. Недавно Петя поведал Васе о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь Вася может с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5. Способ заключается в следующем: для возведения в квадрат числа, оканчивающегося на 5 достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа. Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625. Напишите программу, возводящую число, оканчивающееся на 5, в квадрат для того, чтобы Вася смог проверить свои навыки.

В единственной строке входного файла INPUT.TXT записано одно натуральное число А, оканчивающееся на цифру 5, не превышающее 4*105.

В выходной файл OUTPUT.TXT выведите одно натуральное число — A2 без лидирующих нулей.

1110 Последняя цифра Последняя цифра.

Требуется определить последнюю цифру натурального числа.

Входной файл INPUT.TXT содержит натуральное число, не превосходящее 109.

В выходной файл OUTPUT.TXT выведите последнюю цифру заданного числа.

1111 Число десятков Число десятков.

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

Входной файл INPUT.TXT содержит натуральное число, не превосходящее 109.

В выходной файл OUTPUT.TXT выведите ответ на задачу.

1112 Сумма цифр числа Сумма цифр числа.

Найдите сумму цифр трехзначного натурального числа.

Входной файл INPUT.TXT содержит трехзначное натуральное число.

В выходной файл OUTPUT.TXT выведите сумму цифр заданного числа.

1038 Перевязь Перевязь.

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

Какое минимальное количество луидоров Портос должен заплатить мастеру за работу?

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 109) – длина перевязи в миллиметрах.

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

1113 Проверьте делимость Проверьте делимость.

Даны два натуральных числа. Требуется проверить: делится ли одно из них на другое?

Первая строка входного файла INPUT.TXT содержит два натуральных числа, разделенных пробелом. Числа не превосходят 100.

В выходной файл OUTPUT.TXT выведите 1, если одно из чисел делится на другое нацело. В противном случае следует вывести любое другое натуральное число, отличное от 1 и не превосходящее 109.

1115 Дележ яблок Дележ яблок.

N школьников желают разделить K яблок между собой. Они рассматривают два способа дележа:

разделить яблоки поровну так, чтобы каждому досталось максимальное количество яблок, при этом оставшиеся яблоки можно положить в корзину;
разделить все яблоки так, чтобы количество яблок, доставшихся любым двум школьникам, отличалось бы не более, чем на 1. В этом случае могут обидеться те из них, кому достанется яблок меньше, чем другим.
Входные данные

Входной файл INPUT.TXT содержит натуральные числа N и K – количество школьников и яблок соответственно (N,K ≤ 109).

В выходной файл OUTPUT.TXT выведите три целых числа через пробел:

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

1114 МКАД МКАД.

Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с первого километра МКАД и едет со скоростью V километров в час. На какой отметке он остановится через T часов?

Первая строка входного файла INPUT.TXT содержит два целых числа V и T – скорость (км/ч) и время поездки в часах соответственно. Числа разделены пробелом. Если V>0, то Вася движется в положительном направлении по МКАД, если же значение V

1003 Магазин канцелярских товаров Магазин канцелярских товаров.

Однажды, посетив магазин канцелярских товаров, Вася купил X карандашей, Y ручек и Z фломастеров. Известно, что цена ручки на 2 рубля больше цены карандаша и на 7 рублей меньше цены фломастера. Также известно, что стоимость карандаша составляет 3 рубля. Требуется определить общую стоимость покупки.

В единственной строке входного файла INPUT.TXT записаны три натуральных числа X, Y и Z через пробел, каждое из которых не превышает 109.

В выходной файл OUTPUT.TXT выведите одно целое число – стоимость покупки в рублях.

773 Гулливер Гулливер.

Из книги Джонатана Свифта мы знаем, что тот Гулливер посетил страну «Лилипутию», где живут лилипуты, окруженные вещами, животными и заводами небольшого размера. Сначала лилипуты боялись Гулливера, но позже они поняли, что такое соседство приносит им большую выгоду, и они стали помогать ему. Например, лилипуты делали кровать для Гулливера из своих маленьких матрацев, сшитых вместе. Лилипутам были известны размеры Гулливера. Довольно быстро они смогли просчитать количество матрацев, необходимых для шитья большого матраца. Но у них постоянно возникали сложности с их небольшим ростом и стеля постель, они иногда не могли сшить достаточно толстый матрац.

Входной файл INPUT.TXT содержит два целых числа, которые разделены пробелом: K – коэффициент, отражающий во сколько раз Гулливер больше лилипутов, и M – количество слоев матрацев (2 ≤ K, M ≤ 100).

В выходной файл OUTPUT.TXT выведите количество матрацев лилипутов, необходимых для построения матраца для Гулливера.

92 Журавлики Журавлики.

Петя, Катя и Сережа делают из бумаги журавликов. Вместе они сделали S журавликов. Сколько журавликов сделал каждый ребенок, если известно, что Петя и Сережа сделали одинаковое количество журавликов, а Катя сделала в два раза больше журавликов, чем Петя и Сережа вместе?

В единственной строке входного файла INPUT.TXT записано одно натуральное число S – общее количество сделанных журавликов (S

1116 Разность времен Разность времен.

Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, минуты и секунды для каждого из моментов времени. Известно, что второй момент времени наступил не раньше первого. Определите, сколько секунд прошло между двумя моментами времени. Программа на вход получает три целых числа – часы, минуты, секунды, задающие первый момент времени и три целых числа, задающих второй момент времени. Выведите число секунд между этими моментами времени.

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

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

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

Задача с сайта acmp , пишет ошибка (на 4 тесте) .Что здесь не так?Подскажите пожалуйста. Pascal(Delphi).

var a,b,c:integer;
begin
read(a,b,c);
if (a 727)or(b 727)or (c 727) then Writeln (‘Error’)
else if (a>b)and(a>c) then Writeln(a)
else if (b>a)and(b>c) then Writeln(b)
else if (c>b)and(c>a) then Writeln(c);
Readln;Readln;
< TODO -oUser -cConsole Main : Insert code here >
end.

Очень много сайтов — codeforces, codility, eulerlist, topcoder, и т.д. (habrahabr.ru/post/128108)

Но везде предлагают только задачи, иногда проверки и образцовое решение.

Но как узнать, как до него дошли? Зачастую неочевидно.

Вроде находил несколько книг по теме. Там, Скиена, Меньшиков — но, во первых, сильно мешает восприятию паскаль — очень тяжело читается, что сил нет осмысливать решение.

Есть ресурсы для обучения, которые сначала дают теорию, потом задачи и к ним хорошо расписанные решения?

  • Вопрос задан более трёх лет назад
  • 8182 просмотра

Все верно. Без знания некоторых первокирпичиков понять решение олимпиадной задачи по программированию практически невозможно. Поэтому сначала надо бы:
1. Почитать основы теории чисел. (Что-то вроде начальных глав Бухштаба (libgen.org/get.php?md5=83A35FC9F00ACD428657B5472231DA49)) — одна из наиболее дружелюбных книг для самостоятельного изучения или Thomas Koshy Elementary number theory with applications [2nd ed], если можете в английский (libgen.org/get.php?md5=6E32E401931D3721F88A128297D78B0C)
2. Почитать основы теории графов (Емеличев В.А., и др. Лекции по теории графов libgen.org/get.php?md5=BF711CEBD6C94B61AA1203B8F1E931FE)
3. Почитать алгоритмы на строках (Д. Гасфилд Строки, деревья и последовательности в алгоритмах libgen.org/get.php?md5=718B422928CA1DCCAAD9F2AD29359DFE)
4. Почитать Кормена.

Потом пытаться реализовать все вышеперечисленное на Python.


[an error occurred while processing the directive]
Карта сайта