UVA201-Squares

来源:互联网 发布:如何在淘宝上搜高仿 编辑:程序博客网 时间:2024/06/06 14:16

第一次尝试写acm的博客,想学别人,把自己写的代码上传上来。

哈哈,但愿有一天我能成为一名acm大神。

在此之前,就先认真的刷刘汝佳的这本书和uva吧!!





#include<string.h>#include<math.h>#include<stdlib.h>#define maxn 15int H[maxn][maxn];int V[maxn][maxn];int judge(int ini,int inj,int len){int i;for(i=0;i<=len-1;i++){if(H[ini][inj+i]==0) {return 0;};}for(i=0;i<=len-1;i++){if(V[ini+i][inj+len]==0) return 0;}for(i=0;i<=len-1;i++){if(H[ini+len][inj+i]==0) return 0;}for(i=0;i<=len-1;i++){if(V[ini+i][inj]==0) return 0;}return 1;}int main(){//freopen("input.txt", "r",stdin);int n,m;int tout=0;int tstar=0;while(scanf("%d",&n)!=EOF){memset(H,0,sizeof(H));memset(V,0,sizeof(V));scanf("%d",&m);getchar();char ch;int a,b;int count[15];memset(count,0,sizeof(count));int flag=0;for(int i=0;i<m;i++){scanf("%c %d %d",&ch,&a,&b);getchar();if(ch=='H') H[a][b]=1;if(ch=='V') V[b][a]=1;}for(int i=1;i<=n;i++){for(int j=1;j<=n-i;j++){for(int k=1;k<=n-i;k++){if(judge(j,k,i)){//printf("%d,%d,%d\n",j,k,i);flag=1;count[i]++;}}}}if(tstar++) printf("\n**********************************\n\n");printf("Problem #%d\n\n",tstar);if(flag==0) printf("No completed squares can be found.\n");if(flag==1){for(int i=1;i<=n;i++){if(count[i]!=0) printf("%d square (s) of size %d\n",count[i],i);}}}return 0;}

0 0
原创粉丝点击