Размышляя над задачей о маршрутном такси, решение которой опубликовано здесь придумалось более простое решение.
var
m, n, k,P,p1,p2,p3,s, sp:integer;
f,f1:text;
begin
{Открываем файлы для чтения исходных данных b_in.txt и записи результатаb_out.txt }
assign(f, ‘b_in.txt’);
reset(f);
assign(f1,’ b_out.txt’);
rewrite(f1);
reladln(m,n,k);
s:=m+n+k;{Находим общее количество пассажиров}
{Проверяем на кратность 3}
if s mod 3 <>0 then
Write(f1,’ IMPOSSIBLE’)
else
begin
Задача:
В час пик на остановку одновременно подъехали три маршрутных такси, следующие по одному маршруту, в которые тут же набились пассажиры. Водители обнаружили, что количество людей в разных маршрутках разное, и решили пересадить часть пассажиров так, чтобы в каждой маршрутке было поровну пассажиров. Требуется определить, какое наименьшее количество пассажиров придется при этом пересадить.
Формат входных данных
Во входном файле записано три натуральных числа, не превосходящих 100 - количества пассажиров в первой, второй и третьей маршрутках соответственно.
Формат выходных данных
В выходной файл выведите одно число - наименьшее количество пассажиров, которое требуется пересадить. Если это невозможно, выведите слово IMPOSSIBLE (заглавными буквами).
Примеры
b_in.txt
|
b_out.txt
|
1 2 3
|
1
|
99 100 100
|
IMPOSSIBLE
|
Решение.
m, n, k,P,p1,p2,p3,s, sp:integer;
f,f1:text;
begin
{Открываем файлы для чтения исходных данных b_in.txt и записи результатаb_out.txt }
assign(f, ‘b_in.txt’);
reset(f);
assign(f1,’ b_out.txt’);
rewrite(f1);
reladln(m,n,k);
s:=m+n+k;{Находим общее количество пассажиров}
{Проверяем на кратность 3}
if s mod 3 <>0 then
Write(f1,’ IMPOSSIBLE’)
else
begin
{Находим среднее число пассажиров, переводя результат в целое число с помощью функции trunk()}
sp:=trunc((m+n+k)/3);
{Находим разности пассажиров}
p1 = m – sp;
sp:=trunc((m+n+k)/3);
{Находим разности пассажиров}
p1 = m – sp;
p2 = n – sp;
p3 = k – sp;
Write(f1,P);
end;
{Закрываем файлы}
close(f); close9f1);
end.
end;
{Закрываем файлы}
close(f); close9f1);
end.
Если обнаружите ошибку, опишите ее в комментарии под записью. Буду признателен за уточнение и с радостью ее исправлю.
Комментариев нет:
Отправить комментарий