Begin
write('A':4, 'B':6, 'F1':6);writeln;
for A:= false to true do begin
for B:= false to true do begin
F1:= (not(A) or B) and (not(A) or not(A));
write(A:6, B:6, F1:6);writeln;end; end;writeln;write('X':4, 'Y':6, 'Z':6, 'F2':6);
writeln;
for X:= false to true do begin
for Y:= false to true do begin
for Z:= false to true do begin
F2:= (not(X) and Y) or not(Z);write(X:6, Y:6, Z:6, F2:6);writeln;end; end;end;<span>end.</span>
Дорога, соединяющая города i и j, даст единицу в две позиции - (i, j) и (j, i). Тогда общее количество единиц в матрице равно удвоенному числу дорог. Отсюда и простое решение - считать N^2 чисел, подсчитать количество единиц и поделить его на 2. Можно считать и сумму - от этого ничего не изменится.
#include <iostream>
int main() {
int n = 0, sum = 0, temp = 0;
std :: cin >> n;
for (int i = 0; i < n * n; i++) {
std :: cin >> temp;
sum += temp;
}
std :: cout << sum / 2;
return 0;
}
Дописываем немного код для перебора и проверяем вывод
var
x, a, b, t: longint;
begin
for t := -1000 to 1000 do
begin
x := t;
a := 0;
b := 1;
while x > 0 do
begin
if x mod 2 > 0 then
a := a + x mod 8
else
b := b * (x mod 8);
x := x div 8;
end;
if (a = 2) and (b = 12) then
writeln(t);
end;
end.
Вывод 598
626
654
689
906
913
т.е. минимальное число 598
Аналитическое решение:
имеем дело с 8ричным числом. Перебираем его цифры.
Если цифра нечетная то сумируем ее к А, а четные перемножаем с В
В = 12 это произведение 12 = 2*6 = 3*4 = 1*12, но нужно чтоб все числа были четные потому 2*6
А = 2. 2 = 2 = 1+1 , поскольку числа нечетные, то 2 = 1+1
Значит у нас есть 4 8ричные цифры 2,6,1,1
Минимальное число которое может из них получиться 1126(8) = 598(10)
2^i=32
I=5 бит – вес одного символа
5*80 = 400 бит – вес первого текста
2^i=64
I=6 бит – вес одного символа
6*70 =420 бит– вес второго текста
Ответ: второй текст больше на 20 бит
Запах, зрение, вкус, ощупь(дотик укр.), звук