Given two matrices A and B of size n×n, find the product of them.
bobo hates big integers. So you are only asked to find the result modulo 3.
bobo hates big integers. So you are only asked to find the result modulo 3.
The first line contains n (1≤n≤800). Each of the following n lines contain n integers -- the description of the matrix A. The j-th integer in the i-th line equals A ij. The next n lines describe the matrix B in similar format (0≤A ij,B ij≤10 9).
Print n lines. Each of them contain n integers -- the matrix A×B in similar format.
1 0 1 2 0 1 2 3 4 5 6 7
0 0 12 1
// // main.cpp // 160929 // // Created by liuzhe on 17/3/30. // Copyright © 2016年 my_code. All rights reserved. // //#include <bits/stdc++.h> #include <iostream> #include <algorithm> #include <cstdio> #include <cmath> #include <cstring> #include <string> #include <map> #include <set> #include <queue> #include <deque> #include <list> #include <bitset> #include <stack> #define ll long long #define mod 3 using namespace std; ll a[805][805],b[805][805],c[805][805]; int main() { int n; while(~scanf("%d",&n)) //while(cin>>n) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%lld",&a[i][j]); a[i][j]=a[i][j]%mod; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%lld",&b[i][j]); b[i][j]=b[i][j]%mod; } memset(c,0,sizeof(c)); for(int i=1;i<=n;i++) { for(int k=1;k<=n;k++) { for(int j=1;j<=n;j++) { c[i][j]+=(a[i][k]*b[k][j]); } //c[i][j]=c[i][j]%mod; } } for(int i=1;i<=n;i++) { for(int j=1;j<n;j++) { printf("%lld ",c[i][j]%mod); } printf("%lld\n",c[i][n]%mod); } } return 0; }