Pagini recente » Cod sursa (job #427882) | Cod sursa (job #2624020) | Cod sursa (job #2369386) | Cod sursa (job #2344291) | Cod sursa (job #2368149)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("regiuni.in");
ofstream fout ("regiuni.out");
const short Nmax = 1005;
const int P = 123457;
const int P1 = 1000003;
struct T
{
int a , b , c;
};
T A[Nmax];
pair < int , int > H[Nmax];
int n , m;
inline bool Ok(int p , int x , int y)
{
return ((A[p].a * x + A[p].b * y + A[p].c) >= 0);
}
int main()
{
int x , y , c1 , c2;
bool p;
fin >> n >> m;
for(int i = 1 ; i <= n ; i++)
fin >> A[i].a >> A[i].b >> A[i].c;
for(int i = 1 ; i <= m ; i++)
{
c1 = c2 = 0;
fin >> x >> y;
for(int j = 1 ; j <= n ; j++)
{
p = Ok(j , x , y);
c1 = (c1 * 10 + 1 + p) % P;
c2 = (c2 * 10 + 1 + p) % P1;
}
H[i] = {c1 , c2};
}
sort(H + 1 , H + m + 1);
int ans = 1;
for(int i = 2 ; i <= m ; i++)
ans += (H[i].first != H[i - 1].first || H[i].second != H[i - 1].second);
fout << ans << "\n";
fin.close();
fout.close();
return 0;
}