Pagini recente » Cod sursa (job #315565) | Cod sursa (job #1601592)
#include<cstdio>
#include<vector>
#define mod 100313
#define MOD 666013
#define gf 43
#define mf 47
using namespace std;
struct dr{
int a;
int b;
int c;
}x[1010];
struct pct{
int x;
int y;
}s;
vector<pct>L[1013];
int n,m,i,j,a,b,n1,n2,p,ok,nr;
FILE *f,*g;
int ec( int a, int b, int i ){
return x[i].a * a + x[i].b * b + x[i].c > 0;
}
int main(){
f=fopen("regiuni.in","r");
g=fopen("regiuni.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(f,"%d%d%d",&x[i].a,&x[i].b,&x[i].c);
}
for(i=1;i<=m;i++){
fscanf(f,"%d%d",&a,&b);
n1=n2=0;
for(j=1;j<=n;j++){
n1 = ( n1 * gf + ec( a , b , j ) ) % mod;
n2 = ( n1 * mf + ec( a , b , j ) ) % MOD;
}
s.x=n1;
s.y=n2;
p = ( s.x * s.y ) % 1013;
ok=1;
for( j=0 ; j<L[p].size() ; j ++ ){
if( L[p][j].x == s.x && L[p][j].y == s.y ){
ok=0;
break;
}
}
if(ok){
L[p].push_back(s);
}
}
for(i=0;i<1013;i++){
nr+=L[i].size();
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}