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"); }