回收站选址(clean)
目录
题目:
代码:
int a[1000][1000];
int score[100] = {0};
int main(){
int n;
cin >> n;
for(int i = 0 ; i<n;i++){
cin >> a[i][0] >> a[i][1];
}
for(int i = 0 ; i<n; i++){
int count = 0;
for(int j =0; j<n ;j++){
if(a[j][0] == a[i][0]-1 && a[j][1] == a[i][1]){//left
count++;
}else if(a[j][0] == a[i][0]+1 && a[j][1] == a[i][1]){//right
count++;
}else if(a[j][0] == a[i][0] && a[j][1] == a[i][1]+1){//up
count++;
}else if(a[j][0] == a[i][0] && a[j][1] == a[i][1]-1){//down
count++;
}
}
if(count == 4){//可以当垃圾站了,再遍历
int plus=0;
for(int jj=0; jj<n ;jj++){
if(a[jj][0] == a[i][0]+1 && a[jj][1] == a[i][1]+1){plus++;}
else if(a[jj][0] == a[i][0]-1 && a[jj][1] == a[i][1]+1){plus++;}
else if(a[jj][0] == a[i][0]+1 && a[jj][1] == a[i][1]-1){plus++;}
else if(a[jj][0] == a[i][0]-1 && a[jj][1] == a[i][1]-1){plus++;}
}
score[plus]++;
}
}
for(int i= 0 ;i<5;i++){
cout << score[i]<<"\n";
}
}
考察二维数组的模拟。