Source code
#include <iostream>
#include<vector>
#include<string>
#include<math.h>
#include<set>
#include<map>
#include<list>
#include<stack>
#include<queue>
#include<iterator>
#include<algorithm>
/* ==================================================
| |
| Author: *** S. M. Sabiul Hajjaj Sabit *** |
| Last Edit: May,14,2019 |
================================================== */
///***global declaration***///
#define all(arr) arr.begin(),arr.end()
#define pb push_back
#define lb lower_bound
#define up upper_bound
#define sz(x) x.size()
#define min3(a,b,c) min(min(a,b),c)
#define max3(a,b,c) max(max(a,b),c)
using namespace std;
int i,j,n,m,sum=0,ans=0;
template <typename T>long long int power(T a, T b)
{
long long int pow=1;
for(int i=0; i<b; i++)
pow *= a;
return pow;
}
///*********Write Code From Here*********///
int main()
{
long long int n,q;
char arr[400][400];
cin>>n;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin>>arr[i][j];
}
}
for(int i=0; i<n; i++)
{
if(arr[i][i]!=arr[i+1][i+1] && i!=n-1)
{
cout<<"NO"<<endl;
return 0;
}
if(i==n-1)
{
if(arr[i][i]!=arr[i-1][i-1])
{
cout<<"NO"<<endl;
return 0;
}
}
}
for(int i=n-1; i>=0; i--)
{
if(arr[n-i-1][i]!=arr[n-i][i-1] && i!=0)
{
cout<<"NO"<<endl;
return 0;
}
if(i==0)
{
if(arr[n-i-1][i]!=arr[n-i-2][n-2])
{
cout<<"NO"<<endl;
return 0;
}
}
}
for(int i=0; i<n; i++)
{
char a = arr[0][1];
if(a==arr[0][0])
{
cout<<"NO"<<endl;
return 0;
}
for(int j=0; j<n; j++)
{
if(i!=j && j!=n-1-i)
{
if(a != arr[i][j])
{
cout<<"NO"<<endl;
return 0;
}
}
}
}
cout<<"YES"<<endl;
}
Add your comment