Cod sursa(job #42232)

Utilizator the1dragonIonita Alexandru the1dragon Data 28 martie 2007 23:32:10
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
//#include<stdlib.h>

/*int cmp(const void *a, const void *b)
{
	unsigned char * francesca, * natasa;
	francesca=(unsigned char *) a;
	natasa=(unsigned char *) b;
	for (int i=0; i<128; i++)
		if (francesca[i]>natasa[i]) return 1;
	return 0;
}
*/
char mat[1024][128];

int main()
{
	freopen("regiuni.in", "r", stdin);
	freopen("regiuni.out", "w", stdout);
	
	short int dr[1024][3], n, m, i, j, x, y, count=1;
	scanf("%d%d", &n, &m);
	
	for (i=0; i<n; i++)
		scanf("%d%d%d", &dr[0][i], &dr[1][i], &dr[2][i]);
	
	for (i=0; i<m; i++)
	{
		scanf("%d%d", &x, &y);
		for (j=0; j<n; j++)
			if (dr[0][j]*x+dr[1][j]*y+dr[2][j] > 0) mat[i][j/8]= mat[i][j/8] |  (1<<j%8);
	}
	
	
	
//	qsort(mat, m, sizeof(mat[0]), cmp);
	
	/*for (i=0; i<m; i++)
	{
		for (j=0; j<n; j++)
			printf("%u ", mat[i][j]);
		printf("\n");
	}*/
	
	for (i=1; i<m; i++)
	{
		for (j=0; j<128; j++)
			if ( mat[i][j]!=mat[i-1][j] ){ count++; break;}
 	}
	printf("%d", count);
	return 0;
}