- Description
在8×8格的国际象棋上摆放八个皇后,请你判断她们是否互相攻击,即任意两个皇后都处于同一行、或同一列或同一斜线上。
- Input
输入包含多个测试用例(不超过104)。先给出测试用例数。然后是每个测试用例。每个测试用例包括8行,每一行用8个字符表示棋盘上皇后放置情况,“Q”代表皇后,“#”代表空。
Output
对于每个测试用例,输出一行,依次包含:
Case #: ”,#表示序号
如果测试用例中的八个皇后互相攻击,输出Yes,否则输出NoSample Input
- Sample Output
Case 1: Yes
Case 2: No
#include<stdio.h>
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int a[9],j,t,i,m,n;
char s[8];
scanf("%d",&m);
for(n=1;n<=m;n++)
{
for(j=1;j<=8;j++)
{
scanf("%s",s);
for(i=0;i<8;i++)
if(s[i]=='Q')
{
a[j]=i+1;
break;
}
}
for(i=1;i<=8;i++)
{
t=1;
for(j=1;j<i;j++)
if(a[j]==a[i]||i+a[i]==j+a[j]||i-a[i]==j-a[j])
{ printf("Case %d: Yes\n",n);t=0;break;}
if(t==0)
break;
}
if(i==9)
printf("Case %d: No\n",n);
}
return 0;
}