Объяснение:
using System;
class Program
{
static int P(string p)
{
int a = 0, dec = 1;
for (int i = p.Length - 1; i >= 0; i--)
{
a += (p[i] - '0') * dec;
dec *= 10;
}
return a;
}
static void Main(string[] args)
{
int minSum = 1000000000, maxSum = 0, itMin = 0, itMax = 0;
for (int i = 0; i < 10; i++)
{
int nowSum = 0;
string a = Console.ReadLine();
string[] now = a.Split(' ');
for (int j = 0; j < now.Length; j++)
{
int n = P(now[j]);
nowSum += n;
}
if (minSum > nowSum)
{
itMin = i;
minSum = nowSum;
}
if (maxSum < nowSum)
{
itMax = i;
maxSum = nowSum;
}
}
Console.WriteLine("{0} - строка с минимумом, {1} - строка с максимумом", itMin + 1, itMax + 1);
Console.ReadLine();
}
}
program ostan;
var N,I,J,res: integer;
prov:real;
begin
writeln('Введите количество остановок на маршруте автобуса: ');
read(N);
writeln('Введите пункт отправления ');
read(I);
writeln('Введите конечную остановку ');
read(J);
//N должно быть >1, т.к. для корректного выполнения задачи у нас должно быть хотябы 2 остановки
//I<N+1; +1 для того, что I или J могут быть крайними
//I<>J означает I не равно J, т.к. если мы отправляемся на ту-же остановку, где мы сейчас находимся, ездить незачем
if ((N>1)and(I<N+1)and(J<N+1)and(I<>J)) then
begin
//Тут вводится переменная prov - проверка, как нам короче ехать, от меньшего к большему или в обратную сторону
prov:=N/2;
if (I<J) then if (prov>J-I) then res:=J-I-1 else res:=N-J+I-1 //если I<J, и если разница J-I < prov, то нам выгоднее ехать по прямой, если >, то в обратную сторону
else if (prov>I-J) then res:=I-J-1 else res:=N-I+J-1; // то-же самое, только для I>J
writeln();
writeln('Количество остановок между пунктами = ',res);
end
else writeln(); writeln('ДАННЫЕ НЕ КОРРЕКТНЫ, ОШИБКА ВВОДА');
end.
Хоть какая-то интересная задача на этом сервисе)