Pagini recente » Cod sursa (job #1363918) | Cod sursa (job #581924) | Cod sursa (job #1594617) | Cod sursa (job #874852) | Cod sursa (job #1773260)
#include <bits/stdc++.h>
#define P 1000003
#define Q 123457
using namespace std;
ifstream fin("regiuni.in");
ofstream fout("regiuni.out");
int n,m;
struct Triplet
{
int a,b,c;
};
struct Pereche
{
int st,dr;
};
Pereche h[1001];
Triplet t[1001];
int F(Triplet t,int x,int y)
{
return t.a*x+t.b*y+t.c;
}
inline bool Sortare(const Pereche A,const Pereche B)
{
if(A.st==B.st)
return A.dr<=B.dr;
return A.st<B.st;
}
int main()
{
int i,x,y,j,cod,cnt,codq;
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>t[i].a>>t[i].b>>t[i].c;
for(i=1;i<=m;i++)
{
fin>>x>>y;
cod=0;
codq=0;
for(j=1;j<=n;j++)
if(F(t[j],x,y)>0)
{
cod=(cod*10+1)%P;
codq=(codq*10+1)%Q;
}
else
{
cod=(cod*10+2)%P;
codq=(codq*10+2)%Q;
}
h[i].st=codq;
h[i].dr=cod;
}
sort(h+1,h+m+1,Sortare);
cnt=1;
for(i=2;i<=m;i++)
if(h[i].st!=h[i-1].st || h[i].dr !=h[i-1].dr)cnt++;
fout<<cnt<<"\n";
fin.close();
fout.close();
return 0;
}