L1-048. 行列AにBを乗じる


L1-048. 行列AにBを乗じる
時間の制限
400 ms
メモリ制限
65536 kB
コード長制限
8000 B
クイズルーチン
Standard
作成者
陳越
2つの行列AとBが与えられ、それらの積行列ABを計算する必要がある.スケールマッチングマトリクスのみが乗算できることに注意してください.すなわち、AにRa行、Ca列、BにRb行、Cb列があれば、CaとRbが等しい場合にのみ、2つの行列が乗算される.
入力形式:
入力は、2つのマトリクスAおよびBを前後して与える.各行列については、まず1行にその行数Rと列数Cが与えられ、その後、R行が与えられ、各行には1つのスペースで区切られたC個の整数が与えられ、行の先頭と末尾には余分なスペースがない.入力は、両方の行列のRとCが正数であり、すべての整数の絶対値が100を超えないことを保証する.
出力フォーマット:
入力された2つの行列の規模が一致すると、積行列ABが入力された形式で出力され、そうでなければ「Error:Ca!=Rb」が出力され、CaはAの列数、RbはBの行数である.
サンプル1を入力:
2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8

出力サンプル1:
2 4
20 22 24 16
53 58 63 28

入力サンプル2:
3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72

出力サンプル2:
Error: 2 != 3
 
   
 
   
#include
using namespace std;
int main()
{
              int a[101][101];
              int b[101][101];
              int m,n;
              int x,y;
              scanf("%d%d",&m,&n);
              for(int i=0;i