Cod sursa(job #560684)

Utilizator theodora_maneaManea Theodora Maria theodora_manea Data 18 martie 2011 17:18:30
Problema Regiuni Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int n,m,i,a,b,nr,x,y,j;
typedef struct coord {
	int a,b,c;
};
char v[501][501];
coord d[501];
char p[501];

void punct(int x,int y,int i,int j) {
	int a1,b1,c1;
	a1=d[j].a; 
	b1=d[j].b;
	c1=d[j].c;
	if (a1*x+b1*y+c1>=0) v[i][j]='1';
	else v[i][j]='0';
}

int main () {
	freopen("regiuni.in","r",stdin);
	freopen("regiuni.out","w",stdout);
	scanf("%d%d",&n,&m);
	for (i=0; i<n; i++) 
		scanf("%d%d%d",&d[i].a,&d[i].b,&d[i].c);
	for (i=1; i<=m; i++) {
		scanf("%d%d",&x,&y);
		for (j=0; j<n; j++) 
			punct(x,y,i,j);
	}
    
	for (i=1; i<m; i++)
		for (j=i+1; j<=m; j++) 
			if (strcmp(v[i],v[j])>0) {
				strcpy(p,v[i]);
				strcpy(v[i],v[j]);
				strcpy(v[j],p);
			}
	nr=1;
	for (i=2; i<=m; i++) 
		if (strcmp(v[i],v[i-1])!=0) nr++;
	printf("%d\n",nr);
	return 0;
}