Pagini recente » Cod sursa (job #891570) | Cod sursa (job #489563) | Cod sursa (job #1453066) | Cod sursa (job #2001765) | Cod sursa (job #39989)
Cod sursa(job #39989)
#include<string.h>
#include<fstream.h>
#define input "regiuni.in"
#define output "regiuni.out"
#define Nmax 2005
#define Mmax 2005
//using namespace std;
long sec[Mmax][Mmax/10],n,m,z;
int cmp(long x[Mmax],long y[Mmax])
{
int i;
for (i=0;i<=((n/30)+1);i++)
{
if (x[i]!=y[i])
return 1;
}
return 0;
}
int main()
{
ifstream fin(input);
ofstream fout(output);
long j,s;
int i,k,ok,t,a[Mmax],b[Mmax],c[Mmax],dx[Nmax],dy[Nmax],h;
fin>>n>>m;
k=0;
for(i=0;i<n;i++)
fin>>a[i]>>b[i]>>c[i];
for(i=0;i<m;i++)
fin>>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/31)+1]=z;
z=0;
ok=1;
for (t=0;t<i;t++)
{
if (!cmp(sec[i],sec[t]))
{
ok=0;
break;
}
}
if (ok)
k++;
}
fout<<k<<"\n";
return 0;
}