Только для 7, т.к рассмотрим вторую скобку без инверсии
7 0
9 1
11 1
12 1
Инверсия даст (1 0 0 0) (записала по горизонт., чифры соответствуют 7,9 11,12)
В первой скобке с учетом инверсии получ-ся (1 0 0 0), перемножаем, получаем 1 только в одной строке - напротив 7
===== PascalABC.NET =====
type
reals = file of real;
procedure CreateReals(fn: string; var f: reals);
begin
Rewrite(f, fn);
for var i := 1 to 101 do
Write(f, Random(-50.0, 50.0));
f.Close
end;
function GetAverage(f: reals): real;
begin
Result := f.Elements.Average;
end;
function CountElements(f: reals; m: real) :=
f.Elements.Where(p -> p < m).Count;
begin
var f: reals;
var fn := 'Reals.bin';
CreateReals(fn, f);
Reset(f, fn);
var avg := GetAverage(f);
avg.Println;
CountElements(f, avg).Println
end.
#include <iostream>
#include <cmath>
using namespace std;
void mod(int &mas, int j)
{
cin >> mas;
mas = mas / pow(2, j);
}
int main()
{
int mas[3];
int min;
for (int jjj = 0; jjj < 3; jjj++)
{
mod(mas[jjj], jjj);
if (jjj == 0)
min = 0;
else if (mas[min] > mas[jjj])
min = jjj;
};
cout << mas[min] + mas[min] * 2 + mas[min] * 4;
}
На экран выведет :a=1 b=11 поэтому ответ:1,11
Блок-схема решения задачи 2 - в прилагаемом файле.