CCF 201912-2 回收站选址 C语言代码(100分)
作者:互联网
CCF 201912-2 回收站选址 C语言代码(100分)
问题描述
解题思路
硬解法。
详细代码
#include <stdio.h>
#include <stdlib.h>
typedef struct{
int x;
int y;
}Index;
int main(int argc, char *argv[]) {
int n,i,j,k;
int inx=0,iny=0,countA=0,flag,count0=0,count1=0,count2=0,count3=0,count4=0;
scanf("%d",&n);
Index index[n];
int count[n][5];
for(i=0;i<n;i++){
scanf("%d %d",&index[i].x,&index[i].y);
}
for(i=0;i<n;i++){
for(j=0;j<5;j++){
count[i][j]=0;
}
}
for(i=0;i<n;i++){
countA=0;
flag=0;
inx=index[i].x;
iny=index[i].y;
for(j=0;j<n;j++){
if((index[j].x==inx+1&&
index[j].y==iny)){
flag++;
}
else if((index[j].x==inx-1&&
index[j].y==iny)){
flag++;
}
else if((index[j].x==inx&&
index[j].y==iny+1)){
flag++;
}
else if((index[j].x==inx&&
index[j].y==iny-1)){
flag++;
}
if(flag==4){
for(k=0;k<n;k++){
if(index[k].x==inx+1&&index[k].y==iny+1){
countA++;
}
else if(index[k].x==inx-1&&index[k].y==iny+1){
countA++;
}
else if(index[k].x==inx+1&&index[k].y==iny-1){
countA++;
}
else if(index[k].x==inx-1&&index[k].y==iny-1){
countA++;
}
}
if(countA==1){
count[i][1]=1;
}else if(countA==2){
count[i][2]=1;
}else if(countA==3){
count[i][3]=1;
}else if(countA==4){
count[i][4]=1;
}else if(countA==0){
count[i][0]=1;
}
break;
}
}
}
for(i=0;i<n;i++){
count0=count0+count[i][0];
count1=count1+count[i][1];
count2=count2+count[i][2];
count3=count3+count[i][3];
count4=count4+count[i][4];
}
printf("%d\n",count0);
printf("%d\n",count1);
printf("%d\n",count2);
printf("%d\n",count3);
printf("%d",count4);
return 0;
}
标签:count,index,inx,iny,countA,C语言,201912,else,回收站 来源: https://blog.csdn.net/Houstox/article/details/114394922