Условие
Даны квадратная матрица $A$ порядка $n$, векторы $x$ и $y$ с $n$ элементами каждый. Получить вектор $A(x+y)$.
Входные данные
Число $n$, матрица $A$, вектор $x$, вектор $y$.
Выходные данные
Результирующий вектор $A(x+y)$.
Тесты
Число $n$ | Матрица $A$ | Вектор $x$ | Вектор $y$ | Результирующий вектор $A(x+y)$ |
2 | 2 3 3 2 |
3 4 | 5 6 | 46 44 |
3 | 2 1 4 5 2 6 3 4 8 |
2 2 2 | 3 3 3 | 42 78 90 |
4 | 1 2 3 4 3 4 1 6 2 3 8 1 4 5 0 8 |
1 2 3 4 | 5 4 3 2 | 60 84 84 102 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
class Main { static function main() { var n:Int = Std.parseInt(Sys.stdin().readLine()); var A:Array<Array<Int>> = [for (x in 0...n) [for (y in 0...n) 0]]; var x:Array<Int> = [for (x in 0...n) 0]; var y:Array<Int> = [for (x in 0...n) 0]; var res:Array<Int> = [for (x in 0...n) 0]; for (i in 0...n) { for (j in 0...n) { A[i][j] = Std.parseInt(Sys.stdin().readLine()); } } for (i in 0...n) { x[i] = Std.parseInt(Sys.stdin().readLine()); } for (i in 0...n) { y[i] = Std.parseInt(Sys.stdin().readLine()); } for (i in 0...n) { x[i] += y[i]; } for (i in 0...n) { for (j in 0...n) { res[i] += A[i][j] * x[j]; } } Sys.println(res); } } |
Решение
Вводим число $n$, матрицу $A$, вектора $x$ и $y$. Заходим в цикл в котором считаем сумму векторов $x$ и $y$. В следующем цикле считаем произведение матрицы $A$ на результат сложения векторов $x$ и $y$. Выводим результирующий вектор $res = A(x+y)$.