CodeFoeces-404A

题目

原题链接:A. Valera and X

题意

给出一个n*n的字符矩阵,问他是否能形成一个X,其他地方的字母也必须相同,且一共有两种字母。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    int n,flag=1;
    set<char> t;
    char s[300][300],tmp,tmp1;
    scanf("%d\n",&n);
    for(int i=0; i<n; i++) {
        scanf("%s",s[i]);
    }
    for(int i=0; i<n; i++) {
        for(int j=0; j<n; j++) {
            t.insert(s[i][j]);
        }
    }
    tmp=s[n/2][n/2];
    tmp1=s[0][1];
    for(int i=0; i<=n/2; i++) {
        if(s[i][i]!=tmp || s[i][n-i-1]!=tmp) {
            flag=0;
            goto end;
        }
        for(int j=0;j<n;j++){
            if(s[i][j]!=tmp1 && j!=n-i-1 && j!=i){
                flag=0;
                goto end;
            }
        }
    }
    for(int i=n/2+1; i<n; i++) {
        if(s[i][n-i-1]!=tmp || s[i][i]!=tmp) {
            flag=0;
            goto end;
        }
        for(int j=0;j<n;j++){
            if(s[i][j]!=tmp1 && j!=n-i-1 && j!=i){
                flag=0;
                goto end;
            }
        }
    }
    if(t.size()!=2) flag=0;
end:
    printf("%s\n",flag?"YES":"NO");
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容