Pagini recente » Cod sursa (job #1488683) | Cod sursa (job #1279267) | Cod sursa (job #1776994) | Cod sursa (job #2843648) | Cod sursa (job #37721)
Cod sursa(job #37721)
#include<fstream.h>
#define dim 1002
char mat[dim][dim];
int n,m;
struct dreapta
{int a,b,c;
};
dreapta w[dim];
int v[dim][2],uz[dim];
float y;
void rezy(int i,int j)
{y=float((-(w[i].a*v[j][0]+w[i].c))/w[i].b);}
int main()
{ifstream f("regiuni.in");
ofstream g("regiuni.out");
int i,j,k,l;
f>>n>>m;
for(i=1;i<=n;i++)
{f>>w[i].a>>w[i].b>>w[i].c;
if(w[i].a==0) w[i].c=float((-w[i].c)/w[i].b);
else if(w[i].b==0) w[i].c=float((-w[i].c)/w[i].a);
}
for(i=1;i<=m;i++)
{f>>v[i][0]>>v[i][1];
for(j=1;j<=n;j++)
{if(w[j].a==0) {if(v[i][1]>w[j].c) mat[i][j]='a';
else mat[i][j]='b';
}
else if(w[j].b==0) {if(v[i][0]>w[j].c) mat[i][j]='a';
else mat[i][j]='b';
}
else {rezy(j,i);
if(v[i][1]>y) mat[i][j]='a';
else mat[i][j]='b';
}
}
}
f.close();
k=m;
for(i=1;i<m;i++)
if(!uz[i])
{for(j=i+1;j<=m;j++)
if(!uz[j])
{for(l=1;l<=n;l++) if(mat[i][l]!=mat[j][l]) break;
if(l>n) {k--;uz[j]=1;}
}
}
g<<k<<'\n';
g.close();
return 0;
}