习题4-2
一度wrong answer ,被输出格式坑了
#include<cstdio>
#include<cstring>
int board[10][10][4];//up03 down11 left22 right30
int count[10];//size of square
int cnt;
void judge(int row,int col,int l)
{
for(int i=0;i<4;i++)
for(int j=0;j<l;j++){
if(board[row][col][i]==0) return;
if(i==0) col++;
else if(i==1) row++;
else if(i==2) col--;
else if(i==3) row--;
}
cnt++;
count[l]++;
}
int main(){
int n,v;//dots number lines number
int problem=0;
freopen("D:\\in.txt","r",stdin);
freopen("D:\\out.txt","w",stdout);
while(scanf("%d %d",&n,&v)!=EOF){
problem++;
cnt=0;
memset(board,0,sizeof(board));
memset(count,0,sizeof(count));
char c;
int row,col;
for(int i=0;i<v;i++){
scanf("\n%c%d%d",&c,&row,&col);
if(c=='H') {board[row][col][0]=1; board[row][col+1][2]=1;}
if(c=='V') {board[col][row][1]=1; board[col+1][row][3]=1;}
}//finish input
for(int i=1;i<n;i++)
for(int j=1;j<n;j++){
int k;
if(i>j) k=i;
else k=j;
for(int l=1;l<=n-k;l++)
judge(i,j,l);
}
if(problem>1)printf("\n**********************************\n\n");
printf("Problem #%d\n\n",problem);
if(cnt){
for(int i=1;i<=n;i++)
if(count[i]!=0) printf("%d square (s) of size %d\n",count[i],i);
//printf("\n\n**********************************\n\n");
}
else printf("No completed squares can be found.\n");
}
return 0;
}