PKU3318 Matrix Multiplication

#include<iostream>
using namespace std;
int n;
struct mat
{
    
int a[550][550];    
}A,B,C;

int X[550];
int Y[550];

int input(mat& a)
{
    
int i,j;
    
for(i=0;i<n;++i)
        
for(j=0;j<n;++j)
            scanf(
"%d",&a.a[i][j]);
    
return 0;
}


int mul(int* a,mat& b)
{
    
int i,j;
    
for(i=0;i<n;++i)
        
for(j=0;j<n;++j)
            b.a[i][j]
*=a[i];
    
for(i=0;i<n;++i)
    {
        a[i]
=0;
        
for(j=0;j<n;++j)
            a[i]
+=b.a[j][i];
    }
    
return 0;
}

int main()
{
    
int i;
    scanf(
"%d",&n);
    input(A);input(B);input(C);
    srand(
123456);
    
for(i=0;i<n;++i)X[i]=Y[i]=rand();
    mul(X,A);mul(X,B);mul(Y,C);
    
for(i=0;i<n;++i)
    {
        
//printf("%d %d\n",X[i],Y[i]);
        if(X[i]!=Y[i])break;
    }
    
if(i==n)
        printf(
"YES\n");
    
else
        printf(
"NO\n");
    
return 0;
}
posted @ 2009-02-21 00:00  unber  阅读(126)  评论(0)    收藏  举报