Pagini recente » Cod sursa (job #1608171) | Cod sursa (job #942816) | Cod sursa (job #1753756) | Cod sursa (job #2246027) | Cod sursa (job #2184735)
#include <fstream>
#include <algorithm>
#define M1 666013
#define M2 666019
using namespace std;
ifstream fin("regiuni.in");
ofstream fout("regiuni.out");
int m,n,gr,nr1,p,x,y,nr2;
struct dreapta{
int a,b,c;
}dr[1010];
struct chestie{
int r1,r2;
}v[1010];
int trans(int nr, int mod);
bool comp(chestie A,chestie B);
int main()
{
fin>>m>>n;
for(int i=1;i<=m;i++)
{
fin>>dr[i].a>>dr[i].b>>dr[i].c;
}
for(int i=1;i<=n;i++)
{
fin>>x>>y;
nr1=nr2=0;
for(int i=1;i<=m;i++)
{
if(dr[i].a*x+dr[i].b*y+dr[i].c<0)
p=1;
else p=0;
nr1=nr1*10+p;
nr1=nr1%M1;
nr2=nr2*10+p;
nr2=nr2%M2;
}
v[i].r1=nr1;
v[i].r2=nr2;
}
sort(v+1,v+n+1,comp);
gr=1;
for(int i=1;i<n;i++)
if(!(v[i].r1==v[i+1].r1&&v[i].r2==v[i+1].r2))
gr++;
fout<<gr<<'\n';
return 0;
}
int trans(int nr, int mod)
{
int p=1,np=0,c=0;
while(nr)
{
c=nr%10;
np=np*10+p*c;
np=np%mod;
nr=nr/10;
}
return np;
}
bool comp(chestie A,chestie B)
{
return (A.r1<B.r1||(A.r1==B.r1&&A.r2<B.r2));
}