A704

Задача взята отсюда.

Условие

Даны квадратные матрицы с целыми числами $A$, $B$ и $C$ порядка $n$. Получить матрицу $(A+B)*C$.

Входные данные

В первой строке — размерность матриц $n$. Далее вводятся построчно матрицы $A$, $B$ и $C$.

Выходные данные

Вывести построчно результирующую матрицу $(A+B)*C$.

Тесты:

Тесты:

$n$ $A$ $B$ $C$ Output
$3$ $1$ $2$ $3$
$4$ $5$ $6$
$7$ $8$ $9$
$0$ $1$ $0$
$0$ $0$ $0$
$0$ $0$ $0$
$1$ $0$ $0$
$0$ $1$ $0$
$0$ $0$ $1$
$1$ $3$ $3$
$4$ $5$ $6$
$7$ $8$ $9$
$2$ $4$ $6$
$12$ $7$
$3$ $2$
$1$ $1$
$7$ $3$
$2$ $8$
$65$ $85$
$107$ $103$
$3$ $3$ $4$ $1$
$1$ $2$ $1$
$5$ $6$ $7$
$1$ $3$ $1$
$2$ $4$ $5$
$6$ $5$ $1$
$1$ $1$ $0$
$5$ $8$ $1$
$2$ $3$ $2$
$43$ $66$ $11$
$45$ $69$ $18$
$82$ $123$ $27$

Код на Haxe:

Ход решения:

В первом цикле читаем матрицу $A$:

Во втором цикле считываем элементы матрицы $B$ и сразу прибавляем их к соответствующим элементам матрицы $A$:

В третьем цикле читаем матрицу $C$:

Наконец, в четвертом цикле вычисляем и выводим элементы результирующей матрицы $D = (A + B) * C$:

Ссылки:

Рабочий код для тестирования на try.haxe.org: Try Haxe !

a406

Задача. С помощью [latex]x_{ij}, i=1,2; j=1,…,n[/latex] — действительной матрицы на плоскости задано [latex]n[/latex] точек так, что [latex]x_{1j},x_{2j} [/latex] — координаты [latex]j [/latex]— точки. Точки попарно соединены отрезками. Найти длину наибольшего отрезка.

Тест

n Матрица [latex]x_{ij}, i=1,2[/latex] Длина наибольшего отрезка  Комментарий
3 2 8 4

9 1 5

10 Пройдено
4 6 14 2 1

9 3 8 0

13.3417 Пройдено
5 1 8 4 3 7

2 9 5 0 11

11.7047 Пройдено

 

Код программы

Ход решения:

  1. Вводим матрицу построчно (не очень удобно).
  2. Находим длину наибольшего отрезка.
    С помощью вложенных циклов мы находим длины всех отрезков по формуле
    AB=(x2−x1)2+(y2−y1)2,A(x1,y1),B(x2,y2).
  3. По алгоритму нахождения максимума находим длину наибольшего отрезка.
  4. Выводим матрицу.
  5. Выводим длину наибольшего отрезка.

Пример выполнения

Ю 4.25

Задача

Заполнить матрицу заданного размера [latex]M(k,l)[/latex] числами 1, 2, 3, 4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел.

Тесты

[latex]k[/latex] [latex]l[/latex] Output
6 6
5 5

Код программы

Алгоритм решения

Заполняем массив с помощью формулы (j + 2 * (i % 2)) % 4 + 1. При i четном 2 * (i % 2) будет обращаться в 0. То есть в нечетных строках будут числа 1, 2, 3, 4 подряд, а в четных строках будут меняться цифры 1 на 3, 2 на 4, 3 на 1, 4 на 2.

Решение задачи на Try Haxe !

Решение этой задачи на С++ и Java.

e-olymp 5072. Подсчет количества ребер

Задача

Ориентированный граф задан матрицей смежности.
Найдите количество ребер в графе.

Входные данные

Входной файл содержит число n (1n 100) — число вершин в графе, и затем n строк по n чисел, каждое из которых равно 0 или 1 — его матрицу смежности.

Выходные данные

Выведите в выходной файл количество ребер заданного графа.

Решение

30 1 11 0 1

0 1 1

6
50 1 1 1 11 0 0 0 0

1 0 0 0 0

0 0 1 0 1

1 0 0 0 0

9
21 11 1 4

Алгоритм решения

Количество ребер ориентированного графа равно количеству единиц в его матрице смежности. Поэтому просто считываем, суммируем найденные 1-цы, и выводим ответ.

Выполнение кода на Try Haxe !
Решение задачи на С++.