Pagini recente » Cod sursa (job #1365863) | Cod sursa (job #1640687) | Cod sursa (job #773309) | Cod sursa (job #233841) | Cod sursa (job #40424)
Cod sursa(job #40424)
#include <stdio.h>
#include <string>
#define input "regiuni.in"
#define output "regiuni.out"
#define Nmax 1024
#define Mmax 1024
//using namespace std;
int main()
{
FILE *fin,*fout;
freopen(input,"r",fin);
freopen(output,"w",fout);
long sec[Mmax][Mmax/29],n,m,z,j,s,q;
int i,k,ok,t,a[Mmax],b[Mmax],c[Mmax],dx[Nmax],dy[Nmax],h;
scanf("%d %d",&n,&m);
k=0;
for (i=0;i<n;i++)
fscanf(fin,"%d %d %d",&a[i],&b[i],&c[i]);
for (i=0;i<m;i++)
fscanf(fin,"%d %d",dx[i],dy[i]);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if (j%30==0)
{
sec[i][j/30]=z;
z=0;
}
s=dx[i]*a[j]+dy[i]*b[j]+c[j];
if(a[j]*b[j]!=0)
{
if(s>0)
z+=1<<(j%30);
}
else
{
if(s<0)
z+=1<<(j%30);
}
}
sec[i][(n/30)+1]=z;
z=0;
ok=0;
for (t=0;t<i;t++)
{
ok=0;
for (q=0;q<=((n/30)+1);q++)
{
if (sec[i][q]!=sec[t][q])
{
ok=1;
t=i;
break;
}
}
}
if (ok)
k++;
}
fprintf(fout,"%d\n",k-1);
return 0;
}