2470. Matrix Commutative Multiplication
Constraints
Time Limit: 5 secs, Memory Limit: 256 MB
Description
Given a square matrix of order N. Your task is to check whether AB=BA for all square matrix of the same order N.
Input
The input begins with the integer t, the number of test cases. Then t test cases follow.
For each test case:
- In the first line there is an integer N (N <= 1000)
- In next N lines, each line contains N integer. All integers don't exceed 1000.
Output
For each test case, write "YES" if AB=BA for all square matrix of the same order N, otherwise write "NO".
Sample Input
2 2 1 1 1 2 2 1 0 0 1
Sample Output
NO YES
Problem Source
yessit
#include <iostream>
#include <stdio.h>
using namespace std;
int main () {
int T;
//scanf("%d", &T);
cin>>T;
while (T--) {
int n;
scanf("%d", &n);
//cin>>n;
int fixed;
bool flag = true;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
int inter;
scanf("%d", &inter);
if (i == 1 && j == 1) //第一次 记录对角线的值
fixed = inter;
if (i == j) //判断对角线上的值是否相等
if (inter != fixed)
flag = false;
if (i != j) //判断其他值是否为0
if (inter != 0)
flag = false;
}
}
if (flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
//system("pause");
}