Cod sursa(job #358492)

Utilizator indestructiblecont de teste indestructible Data 23 octombrie 2009 15:01:01
Problema Grendizer Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#define N 1<<16
#define VAL 1<<10
#define NR 300
int n,m,rez_f;
int v[VAL][VAL];
struct query
{
	int a,b,raza;
};
query nr[N];
void solve()
{
	int i,j,crd1,crd2,t;
	for (i=1; i<=m; i++)
	{
		crd1=nr[i].a+NR;
		crd2=nr[i].b+NR;
		rez_f=0;
		if (nr[i].raza>2*NR)
		{
			printf("0\n");
			continue;
		}
		for (j=0; j<nr[i].raza; j++)
		{
			t=nr[i].raza-j;
			rez_f+=v[crd1-j][crd2-t]+v[crd1-j][crd2+t]+
				v[crd1+j][crd2-t]+v[crd1+j][crd2+t];
		}
		printf("%d\n",rez_f);
	}
}
int main()
{
	freopen("grendizer.in","r",stdin);
	freopen("grendizer.out","w",stdout);
	scanf("%d%d",&n,&m);
	int i,x,y;
	for (i=1; i<=n; i++)
	{
		scanf("%d%d",&x,&y);
		v[x+NR][y+NR]++;
	}
	for (i=1; i<=m; i++)
		scanf("%d%d%d",&nr[i].a,&nr[i].b,&nr[i].raza);
	solve();
	return 0;
}