Pagini recente » Cod sursa (job #2326328) | Cod sursa (job #3122491) | Cod sursa (job #1535699) | Cod sursa (job #1182421) | Cod sursa (job #42246)
Cod sursa(job #42246)
#include<stdio.h>
#include<stdlib.h>
char mat[1024][128];
short int n, m;
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<=n/8; i++)
if (francesca[i]>natasa[i]) return 1;
return 0;
}
int main()
{
freopen("regiuni.in", "r", stdin);
freopen("regiuni.out", "w", stdout);
short int dr[1024][3], i, j, x, y, count=1;
scanf("%hd%hd", &n, &m);
for (i=0; i<n; i++)
scanf("%hd%hd%hd", &dr[0][i], &dr[1][i], &dr[2][i]);
for (i=0; i<m; i++)
{
scanf("%hd%hd", &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<=n/8; j++)
if ( mat[i][j]!=mat[i-1][j] ){ count++; break;}
}
printf("%hd", count);
return 0;
}