Program uborka; var a,b,c: integer; //количество вещей в стопках k: real; //минимальное количество ходов. вещественное, т.к. результат деления sa: integer; //среднее арифметическое. к-во вещей должное быть в каждой стопке begin writeln ('введите a, b и c через пробел'); readln (a, b, c); if ((a+b+c) mod 3) = 0 //если сумма вещей делится на 3 нацело then begin sa:=((a+b+c) div 3); //среднее арифметическое выражаю через результат целочисленного деления, т.к иначе конфликт типов k:=(abs(sa-a)+abs(sa-b)+abs(sa-c))/2; //к-во шагов - это половина суммы модулей разности СА и каждой полки writeln (k) end else writeln ('IMPOSSIBLE') end.
program shariki; {n - всего шариков (от 0 до 100 вкл) a - время на надувание 1-го шарика (от 1 до 100 вкл) k - мах кол-во шариков, которое понадобится надуть одному из 2-ух мальчиков t - мин кол-во времени на надувание всех шариков двумя мальчиками} var n, a, k, t: integer; begin writeln ('введите n и a через пробел'); readln (n,a); k:=(n div 2)+(n mod 2);//делим к-во шариков на 2 мальчика и прибавляем лишний при наличии t:=k*a; writeln (t) end.
program otoplenie; {k - кол-во кубометров на 1 батарею (<=2*109) h - высота комнаты (<=105) w - ширина комнаты (<=105) l - длина комнаты (<=105)} var h, w, l, k, v, n: integer; begin writeln ('введите h, w, l, k через пробел'); readln (h, w, l, k); n:=((h*w*l) div k); if ((h*w*l) mod k)>0 then n:=n+1; {делим объем комнаты на объем воздуха для одной батареи (берем только целую часть). если нацело не делится, то к целому от деления прибавляем еще 1 батарею для обогрева остатка} writeln (n) end. здесь, как я понимаю, вводимые данные не могут быть <= нулю, поэтому нулевые и отрицательные варианты не рассматривались
Попробуем найти "шаблоны" расстановок цифр, по которым потом можно будет восстановить любое число, подходящее под определение "хорошего". Затем, исходя из них, посчитаем и количество.
Пусть X = от 1 до 9; и Y = от 1 до 9. При этом X не = Y в один и тот же момент. (то есть одни не могут быть равны одному и тому же числу)
Самый простой вариант - все числа повторяются ровно или более 2 раз.
Попытаемся внести новое число в шаблон. Y - не подходит, так как Y должен повторяться ровно или более двух раз.
YYXXX - подходит. При этом YYYXX бессмысленно, так как охватывает тот же диапазон. Далее двигаться также бесполезно, ибо X не может быть только один, а равносилен . А вот про то, что положения у Y среди X может быть разный, забывать не стоит. Так что стоит учесть все возможные его расстановки.
Тогда количество шаблонов можно будет вычислить как кол-во перестановок Y в X плюс шаблон .
Формулы комбинаторики не помню (2 к 5 тра-та-та) так что буду решать "на живую": с = (4+3+2+1) = 10 - кол-во перестановок 10+1 = 11 - с учетом шаблона .
Теперь о числах. По сути, их всего два. Так как меняются одни в шаблоне одновременно (меняется значение X, то меняются и все X в шаблоне). Так что можно рассматривать это как число XY, но не простое. Как я говорил выше, X не может = Y. И нулями числа быть не могут. Посчитаем количество подстановок цифр вместо X и Y.
L = 9*8 + 8 = 10*8 = 80 (для каждого из 9 X соответствует 8 значений Y (без совпадения), и остается ещё одно значение Y, рассматривая которое, мы приходим к выводу, что для него также есть 8 значений X)
И каждую из этих 80 комбинаций XY можно подставить в 11 шаблонов, что даст возможность воссоздать любое "хорошее" пятизначное число.