Pagini recente » Borderou de evaluare (job #785621) | Cod sursa (job #787196) | Cod sursa (job #785615)
Cod sursa(job #785615)
#include <cstdio>
#include <algorithm>
using namespace std;
#define Hsize 666013
#define Hsize2 809171
#define Hsexion 2
#define Hsexion2 7
#define Nmax 1001
int a[Nmax],b[Nmax],c[Nmax];
pair<short,short> Hash[Nmax];
int N,M,A,B,Sol;
int main()
{
FILE *f = fopen("regiuni.in", "r");
int i,j,x,y;
fscanf(f, "%d %d", &N, &M);
for (i=1;i<=N;++i)
fscanf(f, "%d %d %d", &a[i], &b[i] ,&c[i]);
for (i=1;i<=M;++i)
{
fscanf(f, "%d %d", &x, &y);
A=B=0;
for (j=1;j<=N;++j)
{
A=( A*Hsexion+( a[j]*x+b[j]*y+c[j] > 0 ) ) % Hsize ;
B=( B*Hsexion2+( a[j]*x+b[j]*y+c[j] > 0 ) ) % Hsize2 ;
}
Hash[i].first= A,
Hash[i].second= B;
}
sort(Hash+1,Hash+M+1);
fprintf(fopen("regiuni.out", "w"), "%d\n" , unique(Hash + 1, Hash + M + 1) - Hash - 1 );
}