Pagini recente » Cod sursa (job #1502155) | Cod sursa (job #1420566) | Cod sursa (job #3004744) | Cod sursa (job #1637117) | Cod sursa (job #1807576)
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#define N 1010
#define P 103
#define MOD1 100003
#define MOD2 100007
using namespace std;
struct dreapta {
int a ,b ,c;
};
struct sol {
int v1,v2;
};
sol s[N];
dreapta d[N];
int sgn( dreapta d , int x, int y){
static int val;
val = d.a * x + d.b * y + d.c ;
if(val>0){
return 2;
}else {
return 1;
}
}
int main(){
int n,m,x,y;
int add;
int i,j,h1,h2;
int nrsol=0,spy;
freopen("regiuni.in","r",stdin);
freopen("regiuni.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d%d%d", &d[i].a , &d[i].b , &d[i].c );
}
for(j=0 ; j<m ; j++){
scanf("%d%d",&x,&y);
h1=h2=0;
for(i=0 ; i<n ; i++){
add = sgn(d[i] , x , y);
h1 = (h1 * P + add) % MOD1;
h2 = (h2 * P + add) % MOD2;
}
s[j].v1=h1;
s[j].v2=h2;
}
for(i=0;i<m;i++){
spy=0;
for(j=0;j<i;j++){
if(s[i].v1 == s[j].v1 && s[i].v2 == s[j].v2 ){
spy=1;
break;
}
}
if(spy==0){
nrsol++;
}
}
printf("%d",nrsol);
return 0;
}