CSP 2019-12-2 回收站选址(c语言)


在这里插入图片描述
在这里插入图片描述

思路:
建立数组x,数组y,存放x的坐标和y的坐标。
遍历数组x,y。查看有没有上下左右都有垃圾站的坐标,查找到后,再查找四个角落有几个垃圾站。

代码如下:

#include <stdio.h>
int main() {
    
    
	int a0=0,a1=0,a2=0,a3=0,a4=0,b,i,j,k,z,n,d;
	scanf("%d",&n);
	int x[n],y[n];
	for(i=0;i<n;i++){
    
    
		scanf("%d%d",&x[i],&y[i]);
	}
	for(i=0;i<n;i++){
    
    
		j=x[i];
		k=y[i];
		for(d=0,z=0;d<n;d++){
    
    
			 if(x[d]==j&&y[d]==k+1)
			     z++;
			 if(x[d]==j&&y[d]==k-1)
			     z++;
			 if(x[d]==j+1&&y[d]==k)
			     z++;
			 if(x[d]==j-1&&y[d]==k)
			     z++;}
		if(z==4){
    
    
			for(d=0,b=0;d<n;d++){
    
    
			     if(x[d]==j+1&&y[d]==k+1)
			         b++;
			     if(x[d]==j-1&&y[d]==k-1)
			         b++;
			     if(x[d]==j+1&&y[d]==k-1)
			         b++;
			     if(x[d]==j-1&&y[d]==k+1)
			         b++;
		    }
		    switch(b){
    
    
		    	case 0:a0++;break;
		    	case 1:a1++;break;
		    	case 2:a2++;break;
		    	case 3:a3++;break;
		    	case 4:a4++;break;
			}
        }
	}
	printf("%d\n%d\n%d\n%d\n%d",a0,a1,a2,a3,a4);
	return 0;
}

原题链接:http://118.190.20.162/view.page?gpid=T99

猜你喜欢

转载自blog.csdn.net/weixin_46157208/article/details/107999152