Cod sursa(job #796257)

Utilizator RaduDoStochitoiu Radu RaduDo Data 10 octombrie 2012 21:33:12
Problema Poligon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<iostream>
#include<fstream>
using namespace std;
int x[1000],y[1000],xM,yM,i,n,m,ct;
double S,Arie,z;
int main()
{
	fstream f("poligon.in",ios::in);
	fstream g("poligon.out",ios::out);
	f>>n>>m;
	for(i=1;i<=n;++i)
		f>>x[i]>>y[i];
	x[n+1]=x[1];y[n+1]=y[1];
	for(i=1;i<=n;++i)
		S+=(double((x[i+1]-x[i])*(y[i]+y[i+1]))/2);
	if(S<0)
		S=-S;
	while(m--)
	{
		f>>xM>>yM;
		Arie=0;
		for(i=1;i<=n;++i)
		{
			z=xM*y[i]+x[i]*y[i+1]+x[i+1]*yM-y[i]*x[i+1]-y[i+1]*xM-yM*x[i];
			if(z<0)
				z=-z;
			Arie+=(double(z)/2);
		}
	if(S==Arie) ct++;
	}
	g<<ct<<"\n";
	f.close();g.close();
	return 0;
}