Решение на C#
using System;
using System.Linq;
namespace Samokat
{
class Program
{
static void Main(string[] args)
{
var input = Console.In
.ReadLine()
.Split(',', ' ')
.Where(t => !String.IsNullOrEmpty(t))
.Select(int.Parse)
.ToList();
int flatLen = input[0];
int uphillLen = input[1];
int flatDrain = input[2];
int uphillDrain = input[3];
int fuel = input[4];
// minimizing flat travel
int minFlatLen = flatLen - fuel;
minFlatLen = minFlatLen < 0 ? 0 : minFlatLen;
int maxUphillLen = uphillLen - (fuel - (flatLen - minFlatLen)) / 2;
maxUphillLen = maxUphillLen < 0 ? 0 : maxUphillLen;
// minimizing uphill travel
int minUphillLen = uphillLen - (fuel) / 2;
minUphillLen = minUphillLen < 0 ? 0 : minUphillLen;
int maxFlatLen = flatLen - (fuel - (uphillLen - minUphillLen) * 2);
maxFlatLen = maxFlatLen < 0 ? 0 : maxFlatLen;
int minFlatTravelDrain = minFlatLen * flatDrain + maxUphillLen * uphillDrain;
int maxFlatTravelDrain = maxFlatLen * flatDrain + minUphillLen * uphillDrain;
var minDrain = Math.Min(minFlatTravelDrain, maxFlatTravelDrain);
var maxDrain = Math.Max(minFlatTravelDrain, maxFlatTravelDrain);
Console.Out.WriteLine(minDrain);
Console.Out.WriteLine(maxDrain);
}
}
}
1. Всего 5 деревьев.
По условию ни берёза, ни ель, ни клён, даже не липа на первом месте.
Значит, самое высокое дерево - Тополь.
2. Т.к. липа отстала от тополя на два места, то она на третьем месте по высоте.
3. Получается вот такой промежуток по возрастанию:
(?, ?, Липа, ?, Тополь)
Т.к. ель идёт сразу за клёном, то они занимают последние два места по высоте.
То есть ель на 5-ом месте, клён - на 4-ом.
4. Остаётся только 2 место и только береза.
береза - 2 место
ответ от меньшего к большему: Ель, Клён, Липа, Берёза, Тополь.
var s:integer;
b,y,a:real;
begin
write('Введите сумму денег, на которую собираетесь произвести покупки: ');
read(a);
while a>0 do begin
s:=s+1;
write('Товар №',s,': ');
read(b);
write('Введите количество: ');
read(y);
a:=a-(b*y);
end;
end.