Problem Type : Matrix
#include<stdio.h>
#include<string.h>
#define MAX 105
long long int mat [MAX][MAX];
int main()
{
char c;
long int n,i,j,tag,cas=0,test;
scanf("%d",&test);
while(test--)
{
getchar();
scanf("N = %d",&n);
cas++;
tag=0;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%lld",&mat[i][j]);
if(mat[i][j]<0)
{
tag=1;
}
}
}
int x,k;
if(tag==0)
{
if(n%2==1)
{
k=0;
for(i=1; i<=n/2+1; i++)
{
x=0;
for(j=1; j<=n; j++)
{
if(mat[j][i]==mat[n-x][n-k])
{
x++;
continue ;
}
else if(mat[j][i]!=mat[n-x][n-k])
{
x++;
tag=1;
}
}
k++;
if(tag==1)
break;
}
}
else
{
int k=0;
for(i=1; i<=n/2; i++)
{
int m=0;
for(j=1; j<=n; j++)
{
if(mat[j][i]==mat[n-m][n-k])
{
m++;
continue ;
}
else{
tag=1;
}
}
k++;
if(tag==1)
break;
}
}
}
if(tag==0)
{
printf("Test #%d: Symmetric.\n",cas);
}
else
{
printf("Test #%d: Non-symmetric.\n",cas);
}
memset(mat,0,sizeof(mat));
}
}
No comments:
Post a Comment