Pagini recente » Cod sursa (job #391967) | Cod sursa (job #3134399) | Cod sursa (job #2652473) | Cod sursa (job #59862) | Cod sursa (job #796259)
Cod sursa(job #796259)
#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]*(y[i+1]-y[i-1])));
if(S<0)
S=-S;
S/=2;
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;
}