Cod sursa(job #253759)

Utilizator mottyMatei-Dan Epure motty Data 6 februarie 2009 12:12:49
Problema Grendizer Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.96 kb
#include<stdio.h>

#define N 100001

struct vn{
	int x,y;
};

struct vm{
	int x,y,r;
};

vn nn[N];

vm mm[N];

int n,m;

void citire()
{
	scanf("%d%d",&n,&m);
	for( int i=0 ; i<n ; ++i )
		scanf("%d%d",&nn[i].x,&nn[i].y);
	for( int i=0 ; i<m ; ++i )
		scanf("%d%d%d",&mm[i].x,&mm[i].y,&mm[i].r);
}

bool manh(int i,int j)
{
	int x1,x2,y1,y2;
	if(mm[i].x>nn[j].x)
	{
		x2=mm[i].x;
		x1=nn[j].x;
	}
	else
	{
		x2=nn[j].x;
		x1=mm[i].x;
	}
	if(mm[i].y>nn[j].y)
	{
		y2=mm[i].y;
		y1=nn[j].y;
	}
	else
	{
		y2=nn[j].y;
		y1=mm[i].y;
	}
	if((x2-x1)+(y2-y1)==mm[i].r)
		return 1;
	return 0;
}

long long rasp(int i)
{
	long long rez=0;
	for( int j=0 ; j<n ; ++j )
		if(manh(i,j)==true)
			++rez;
	return rez;
}

void calcul()
{
	for( int i=0 ; i<m ; ++i )
		printf("%lld\n",rasp(i));
}

int main()
{
	freopen("grendizer.in","r",stdin);
	freopen("grendizer.out","w",stdout);
	citire();
	calcul();
	return 0;
}