Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
where is the fault#include<stdio.h> #include<string.h> int b[1000][1000]; int qsx[100],qsy[100]; main() { int m,n,i; long int s,time=1; int q,qs,qx,qy; while(scanf("%d%d",&m,&n),!(m==0||n==0)) { s=0; memset(b, 0, sizeof(b)); /*Read Queens*/ scanf("%d",&q); qs=q; for(i=0;i<q;++i) { scanf("%d%d",&qx,&qy); qsx[i]=qx-1; qsy[i]=qy-1; b[qx-1][qy-1]=2; } /*Read and count Knight*/ scanf("%d",&q); for(;q>0;--q) { scanf("%d%d",&qx,&qy); qx-=1; qy-=1; b[qx][qy]=2; if(qx-1>=0&&qy-2>=0) b[qx-1][qy-2]=1; if(qx-1>=0&&qy+3<=n) b[qx-1][qy+2]=1; if(qx-2>=0&&qy-1>0) b[qx-2][qy-1]=1; if(qx-2>=0&&qy+1<n) b[qx-2][qy+1]=1; if(qx+1<m&&qy-2>=0) b[qx+1][qy-2]=1; if(qx+1<m&&qy+2<n) b[qx+1][qy+2]=1; if(qx+2<m&&qy-1>=0) b[qx+2][qy-1]=1; if(qx+2<m&&qy+1<n) b[qx+2][qy+1]=1; } /*Pawns*/ scanf("%d",&q); for(;q>0;--q) { scanf("%d%d",&qx,&qy); qx-=1; qy-=1; b[qx][qy]=2; } /*queens*/ for(i=0;i<qs;++i) { for(qx=qsx[i]-1,qy=qsy[i];qx>=0&&b[qx][qy]!=2;--qx) b[qx][qy]=1; for(qx=qsx[i],qy=qsy[i]-1;qy>=0&&b[qx][qy]!=2;--qy) b[qx][qy]=1; for(qx=qsx[i]+1,qy=qsy[i];qx<m&&b[qx][qy]!=2;++qx) b[qx][qy]=1; for(qx=qsx[i],qy=qsy[i]+1;qy<n&&b[qx][qy]!=2;++qy) b[qx][qy]=1; for(qx=qsx[i]-1,qy=qsy[i]-1;qx>=0&&qy>=0&&b[qx][qy]!=2;--qx,--qy) b[qx][qy]=1; for(qx=qsx[i]+1,qy=qsy[i]-1;qx<m&&qy>=0&&b[qx][qy]!=2;++qx,--qy) b[qx][qy]=1; for(qx=qsx[i]-1,qy=qsy[i]+1;qx>=0&&qy<n&&b[qx][qy]!=2;--qx,++qy) b[qx][qy]=1; for(qx=qsx[i]+1,qy=qsy[i]+1;qx<m&&qy<n&&b[qx][qy]!=2;++qx,++qy) b[qx][qy]=1; } /*count*/ for(i=0,s=0;i<m;++i) for(q=0;q<n;++q) if(b[i][q]==0) ++s; printf("Board %ld has %ld safe squares.\n",time,s); ++time; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator