习题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;
}


posted @ 2019-02-03 11:09  少年留不住  阅读(70)  评论(0编辑  收藏  举报