Решите !
саша — весёлый парень, поэтому он никогда не сидит на месте. в стране, где живёт саша, есть n городов. все они расположены на одной прямой и, для удобства, пронумерованы целыми числами от 1 до n в возрастающем порядке. расстояние между любой парой соседних городов составляет 1 километр. так как движение в стране одностороннее, то из города с номером x можно попасть в город с номером y только если x
однажды саша решил отправиться в путешествие по стране и посетить все n городов. путешествовать он будет на своей машине cheetah-2677. вместимость бака у данной модели составляет v литров, а на 1 километр пути она тратит ровно 1 литр топлива. изначально бак пуст. саша находится в городе с номером 1 и хочет попасть в город с номером n. в каждом городе есть заправка, причём в i-м городе 1 литр бензина стоит ровно i долларов. очевидно, что в любой момент времени, в баке его машины может быть не более v литров топлива.
саша не любит тратить деньги впустую, поэтому хочет узнать, какую минимальную сумму придётся взять с собой, чтобы доехать до последнего города, покупая топливо там, где он захочет. ему в этом!
входные данные
первая строка содержит два целых числа n, v (2≤n≤100, 1≤v≤100) — количество городов в стране и ёмкость бака машины.
выходные данные
выведите одно целое число — минимальное количество долларов, необходимое для путешествия.
вот словесное решения, которое я не понимаю: когда n−1
напишите программу на языке желательно pascalabc.net или на "c", .
A: array[1..100, 1..100] of integer;
B: array[1..100]of integer;
i, j, k, n, m, imax: integer;
manual: boolean;
begin
writeln('Ручной ввод (true/false)==>');
read(manual);
if manual then begin
writeln('Размер массива n, m ==>');
read(n, m);
end
else begin
n := random(10) + 5;
m := random(10) + 5;
end;
for i := 1 to n do
begin
writeln();
for j := 1 to m do
begin
if manual then
read(a[i, j])
else begin
a[i, j] := random(100) - 50;
write(a[i, j]:3, ' ');
end;
end;
end;
writeln();
writeln();
for j := 1 to m do
if j mod 2 = 1 then begin
k := k + 1;
b[k] := 1;
for i := 1 to n do
b[k] := b[k] * a[i, j];
write(b[k], ' ');
end;
writeln();
for i := 1 to k - 1 do
begin
imax := i;
for j := i + 1 to k do
if b[j] > b[imax] then
imax := j;
n := b[i];
b[i] := b[imax];
b[imax] := n;
end;
for i := 1 to k do
write(b[i], ' ');
end.