К-тая банка
У Никиты есть n банок газировки, каждая из которых имеет свой объём.
Известно, что полезнее всего пить газировку, начиная от банок большего объема и переходя к всё меньшим Никите найти k-ю по полезности банку. Встроенные алгоритмы сортировки не использовать.
НАПИШИТЕ ЯЗЫКИ _ Питон или С++
Решение
Pascal- Python
var
a: array[1..1000] of real;
n, i, mi, ma: integer;
max, min: real;
begin
write('Введите N: ');
readln(n);
for i := 1 to n do
begin
write('Введите ', i, ' элемент: ');
readln(a[i]);
if i = 1 then begin max := a[i]; min := a[i]; ma := i; mi := i; end;
if min > a[i] then begin min := a[i]; mi := i; end;
if max < a[i] then begin max := a[i]; ma := i; end;
end;
writeln;
writeln('Ваш массив: ');
for i := 1 to n do writeln(i, ') ', a[i], ' ');
writeln;
writeln('Массив после замены Max на Min: ');
a[mi] := a[ma] + a[mi];
a[ma] := a[mi] - a[ma];
a[mi] := a[mi] - a[ma];
for i := 1 to n do writeln(i, ') ', a[i], ' ');
end.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int s = 0, l = 1, n;
cin >> n;
vector <int> v(n);
for (int i = 0; i < n; ++i)
{
cin >> v[i];
if (v[i] > 0)
{
s += v[i];
}
}
int imn = 0, imx = 0;
for (int i = 0; i < n; ++i)
{
if (v[i] < v[imn])
{
imn = i;
}
if (v[i] > v[imx])
{
imx = i;
}
}
if (imn > imx)
{
swap (v[imn], v[imx]);
}
for (int i = imn; i < imx; i++)
{
if (v[i] > 0)
{
l *= v[i];
}
}
cout << s << " " << l;
return 0;
}
Объяснение: