Cod sursa(job #332710)

Utilizator luk17Luca Bogdan luk17 Data 19 iulie 2009 13:43:45
Problema Poligon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
struct punct
{
	int x,y;
};
int n,m;
punct p[1000];
int det(punct a,punct b,punct c)
{
	int det= (a.x*b.y+b.x*c.y+c.x*a.y-c.x*b.y-a.x*c.y-b.x*a.y);
	if(det>0)return 1;
	if(det==0)return 0;
	return -1;
}

int main()
{
	freopen("poligon.in","r",stdin);
	freopen("poligon.out","w",stdout);
	int i,sign;
	punct a;
	scanf("%d %d",&n,&m);
	for(i=1;i<=n;i++)
		scanf("%d%d",&p[i].x,&p[i].y);
	p[n+1]=p[1];
	p[n+2]=p[2];
	int contor=0;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&a.x,&a.y);
		sign=det(p[1],p[2],a);
		int ok=1;
		for(int j=2;j<=n;j++)
			if(sign!=det(p[j],p[j+1],a)&&det(p[j],p[j+1],a))
			{
				ok=0;
				break;
			}
		if(ok==1)
		{
		//	printf("%d %d\n",a.x,a.y);
			contor++;
		}
	}
	printf("%d\n",contor);
	return 0;
}