CSP 2019-12-2 回收站選址(c語言)

2020-08-14 11:06:37


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

思路:
建立陣列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