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 solutions