#include<stdio.h>
/*
cbc
bab a要有垃圾
cbc 如图,a必须是整数坐标,上下左右的b
必须也要有垃圾
满足条件的a会有评分
0~4 即有几个c存在垃圾就几分
输入:
n+1行 第一行表示总数
然后是有垃圾的地方坐标 x y
需要输出0,1,2,3,4分数的选址个数
*/
/* int sum,i,y;
int x[]={0};
int y[]={0};
int score[5]={0}; //得分
scanf("%d",&sum);
for(i=0;i<sum;i++){
scanf("%d%d",&x[i],&y[i]);
}
//首先我需要判断一个点是否是合格选址
for(i=0;i<sum;i++){
for(y=0;y<sum;y++){
if(x[i]==x[y]+1)
}
}
*/
int main()
{
long long int a[1000][2];
int b[1000]={0},c[5]={0};
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%lld%lld",&a[i][0],&a[i][1]);//数组的值为坐标
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if((a[i][0]==a[j][0]&&a[i][1]==a[j][1]+1)||(a[i][0]==a[j][0]&&a[i][1]==a[j][1]-1)|| (a[i][0]==a[j][0]-1&&a[i][1]==a[j][1])||(a[i][0]==a[j][0]+1&&a[i][1]==a[j][1]))
{
b[i]++;
b[j]++;
}
}
}
for(i=0;i<n;i++)
{
int count=0;//对角线上有几个
if(b[i]==4)
{
for(j=0;j<n;j++)
{
if((a[i][0]==a[j][0]+1&&a[i][1]==a[j][1]+1)||(a[i][0]==a[j][0]+1&&a[i][1]==a[j][1]-1)||
(a[i][0]==a[j][0]-1&&a[i][1]==a[j][1]+1)||(a[i][0]==a[j][0]-1&&a[i][1]==a[j][1]-1))
count++;
}
c[count]++;
}
}
for(i=0;i<=4;i++)
printf("%d\n",c[i]);
return 0;
}
CSP(二)
最新推荐文章于 2024-07-26 16:03:37 发布