Matrix
#include<cstdio> #include<iostream> #include<algorithm> #include<cmath> using namespace std; int n; struct Matrix{ long long a,b,v[105][105]; }A,B; Matrix operator *(Matrix A,Matrix B){ Matrix C; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ C.v[i][j]+=(A.v[i][k]%1000000007)*(B.v[k][j]%1000000007); C.v[i][j]%=1000000007; } } } return C; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ scanf("%lld",&A.v[i][j]); } } B=A*A; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ printf("%lld ",B.v[i][j]); } printf("\n"); } return 0; }