HackerEarth Matrix Symmetry problem solution YASH PAL, 31 July 2024 In this HackerEarth Matrix Symmetry problem solution, You are given a square matrix of size n. Rows are indexed 1 to n from top to bottom and columns are indexed 1 to n from left to right. The matrix consists of only ‘*’ and ‘.’. You need to check whether the matrix is symmetric or not. if it is, check it is symmetric about the vertical axis or horizontal axis, or both. A matrix is said to be symmetric about the horizontal axis if the 1st row is identical to the nth row, the 2nd is identical to (n – 1)th row, and so on… A matrix is said to be symmetric about the vertical axis if the 1st column is identical to the nth column, 2nd identical to (n – 1)th and so on for all columns. HackerEarth Matrix Symmetry problem solution. #include<iostream>#include<cstring>#include<string>#include<cstdio>#include<fstream>#include<cstdlib>#include<cassert>#include<vector>#include<algorithm>#include<stack>#include<set>#include<map>#include<list>#include<math.h>#include<ctime>#define LL long long#define ULL unsigned long long#define F firs#define S second#define pb push_back#define FOR(i,lb,ub) for(i=lb;i<=ub;i++)#define RFOR(i,ub,lb) for(i=ub;i>=lb;i--)#define FORS(it,v) for(it=v.begin();it!=v.end();it++)#define st_clk double st=clock();#define end_clk double en=clock();#define show_time cout<<"tTIME="<<(en-st)/CLOCKS_PER_SEC<<endl;#define sc(n) scanf("%d",&n)#define scst(n) scanf("%s",n)#define f_in(st) freopen(st,"r",stdin);#define f_out(st) freopen(st,"w",stdout);LL gcd(LL a, LL b) { return b?gcd(b,a%b):a; }using namespace std; #ifndef ONLINE_JUDGEinline int getchar_unlocked() { return getchar(); }#endiftemplate <class T>inline void r_f(T &p){ char c; int neg=0; while ((c=getchar_unlocked()) < 48 || c > 57) if (c==45) neg=1; p=c-48; while ((c=getchar_unlocked()) >= 48 && c <= 57) p=p*10+c-48; if (neg) p*=-1;}int main(){ #ifndef ONLINE_JUDGE int no; cin>>no; char istr[20],ostr[20]; sprintf(istr,"input-%d.txt",no); sprintf(ostr,"out-%d.txt",no); f_in(istr); f_out(ostr); #endif int t,i,j; cin>>t; while (t--) { int n,hori=1,vert=1; cin>>n; char mat[50][50]; FOR(i,0,n-1) cin>>mat[i]; FOR(i,0,n-1) FOR(j,0,n-1) { if (mat[i][j]!=mat[n-1-i][j]) hori=0; if (mat[i][j]!=mat[i][n-1-j]) vert=0; } if (vert && hori) cout<<"BOTHn"; else if (vert) cout<<"VERTICALn"; else if (hori) cout<<"HORIZONTALn"; else cout<<"NOn"; }return 0;} coding problems