四川大学线下编程比赛第二题:Peter的X

来源:互联网 发布:安装包制作工具 知乎 编辑:程序博客网 时间:2024/04/26 02:46
Peter是个小男孩,他总是背不清26个英文字母。于是,刁钻的英语老师给他布置了一个非常奇怪的作业,老师给了他一个由26个英文字母构成的N*N 的矩阵(我们保证N一定是一个奇数),问他这个矩阵构成的图案是否是一个标准的“X”。 一个标准的X的定义:1、对角线上所有元素都是同一个字母。2、所有非对角线上的元素也都是同一个字母,且字母与对角线上的字母不同。 如果是则输出“YES”,否则输出“NO”。
输入描述: 多组测试数据(数据量在100组以内)。每组测试数据第一行为一个整数N(1<=N<=300),表示表格的大小。 下面是N行是一个由字母构成的N*N的矩阵。
输出描述: 对于每组输入数据,输出一行“YES”或“NO”

以下是我的代码,验证通过

#include "stdio.h"void PeterX();int main(){int max = 100;while (max){PeterX();}return 0;}void PeterX(){int i, j, n;char A, B, temp;int flag = 1;scanf("%d", &n);getchar();for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i == 0 && j ==0){scanf("%c", &A);}else if(i == 0 && j == 1){scanf("%c", &B);if (A == B){flag = 0;}}else if (i == j || i == (n - 1 - j)){scanf("%c", &temp);if (temp != A){flag = 0;}}else{scanf("%c", &temp);if (temp != B){flag = 0;}}}getchar();}if (flag){printf("YES\n");}else{printf("NO\n");}}

0 0
原创粉丝点击