PKU 3318 Matrix Multiplication(神奇的输入)

#include<cstdio>
using namespace std;
int n,A[505][505];
int B[505][505],C[505][505];

int Read()
{
    int d=0;
    char ch,t=0;
    while((ch=getchar())==' '||ch=='\n') ;
    if(ch=='-') t=1;
    else d=ch-'0';
    while((ch=getchar())>='0'&&ch<='9')
        d=d*10+ch-'0';
    if(t) return -d;
    else return d;
}

int main()
{
    scanf("%d",&n);
    bool sign=true;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            A[i][j]=Read();
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            B[i][j]=Read();
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            C[i][j]=Read();
    }
    for(int i=0;i<n&&sign;i++){
        for(int j=0;j<n&&sign;j++){
            int sum=0;
            for(int k=0;k<n;k++)
                sum+=A[i][k]*B[k][j];
            if(sum!=C[i][j]){
                sign=false;
                break;
            }
        }
    }
    if(sign) printf("YES");
    else printf("NO");
}

 

posted @ 2017-02-20 18:21  despair_ghost  阅读(180)  评论(0编辑  收藏  举报