PersonalCorpus 版 (精华区)
1148141 Big Guava ... 201 Accepted
0:00.460 416 2002/10/05 20:50:23.457
void main()
{
#ifndef ONLINE_JUDGE
freopen("c:\\0acm\\uva\\i201","r",stdin);
freopen("c:\\0acm\\uva\\o201","w",stdout);
#endif
bool dl[10][10][10][10];
char s[100];
int i,j,k,m,n,a,b,sum[9],t=0;
while (scanf("%d\n",&n)==1) {
if (t>0) printf("\n**********************************\n\n");
printf("Problem #%d\n\n",++t);
scanf("%d\n",&m);
memset(dl,0,sizeof(dl));
memset(sum,0,sizeof(sum));
for (i=0;i<m;i++) {
gets(s);
j=1;
while (s[j]==' ') j++;
sscanf(s+j,"%d",&a);
while (s[j]!=' ') j++;
while (s[j]==' ') j++;
sscanf(s+j,"%d",&b);
if (s[0]=='H') {
dl[a][b][a][b+1]=true;
dl[a][b+1][a][b]=true;
} else {
dl[b][a][b+1][a]=true;
dl[b+1][a][b][a]=true;
}
}
for (i=1;i<n;i++) for (j=1;j<n;j++)
for (k=1;(k+i<=n)&&(k+j)<=n;k++) {
for (a=0;a<k;a++)
if
(!((dl[i+a][j][i+a+1][j])&&(dl[i][j+a][i][j+a+1])&&
(dl[i+k-a][j+k][i+k-a-1][j+k])&&(dl[i+k][j+k-a][i+k][j+k-a-1])))
break;
if (a==k) sum[k]++;
}
for (i=1;i<9;i++) if (sum[i]!=0) break;
if (i==9) printf("No completed squares can be found.\n");
else {
for (i=1;i<9;i++) if (sum[i]!=0)
printf("%d square (s) of size %d\n",sum[i],i);
}
}
}
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.711毫秒