中科大 oj 1281

代码有问题但是找不到那里错。。。
#include<iostream>
#include<map>
#include<cstdio>

using namespace std;

struct point{
	int a,b;
}tab[10010],e;
bool operator<(const point &p1,const point& p2)
{
	if(p1.a<p2.a)return 1;
	else if(p1.a==p2.a)return p1.b<p2.b;
	return 0;
}
int dir[5][2]={0,0,0,1,0,-1,1,0,-1,0};
int main()
{
	freopen("in.txt","r",stdin);
	int a,b,n;
	int t=0;
	while(scanf("%d%d%d",&n,&a,&b)!=EOF){
		if(a+b+n==0)break;
		map<point,int> m;
		for(int i=0;i<n;i++)scanf("%d%d",&tab[i].a,&tab[i].b);
		for(int i=0;i<n;i++){
			for(int j=0;j<5;j++){
				e.a=tab[i].a+dir[j][0];
				e.b=tab[i].b+dir[j][1];
				m[e]++;
			}
		}
		int c=0;
		for(int i=0;i<n;i++)if(m[tab[i]]<3)c++;
		printf("Case %d: %d\n",++t,c);
	}
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页