Pagini recente » Cod sursa (job #1699512) | Cod sursa (job #2153392) | Cod sursa (job #1103330) | Cod sursa (job #2235867) | Cod sursa (job #1726069)
#include <bits/stdc++.h>
#define P 1000003
#define Q 123457
using namespace std;
struct dreapta
{
int a, b, c;
};
struct pereche
{
int x, y;
};
dreapta d[1001];
pereche X[1001];
int F(int a, int b, int c, int x, int y)
{
if(a * x + b * y + c > 0) return 1;
return 2;
}
inline bool cmp(const pereche A, const pereche B)
{
if(A.x == B.x) return A.y > B.y;
return A.x > B.x;
}
int main()
{
int xi, yi, v, n, m, p, q;
ifstream fin("regiuni.in");
fin >> n >> m;
for(int i = 1; i <= n; i++)
fin >> d[i].a >> d[i].b >> d[i].c;
for(int i = 1; i <= m; i++)
{
fin >> p >> q;
xi = yi = 0;
for(int j = 1; j <= n; j++)
{
v = F(d[j].a, d[j].b, d[j].c, p, q);
xi = (xi * 10 + v) % P;
yi = (yi * 10 + v) % Q;
}
X[i].x = xi;
X[i].y = yi;
}
fin.close();
sort(X + 1, X + 1 + m, cmp);
for(int i = 1; i <=m; i++)
cout << X[i].x << " " << X[i].y << "\n";
v = 1;
for(int i = 2; i <= m; i++)
if(X[i].x != X[i - 1].x || X[i].y != X[i - 1].y)
v++;
ofstream fout("regiuni.out");
fout << v << "\n";
fout.close();
return 0;
}