Cod sursa(job #47466)

Utilizator razvannovaZegheanu Razvan - UPB razvannova Data 3 aprilie 2007 18:57:31
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
int main()
{
	short int n,m,i,j,k,d1[1001],d2[1001],d3[1001],p1[1001],p2[1001],aux,sw,nr,viz[1001];
	FILE *fin,*fout;
	fin=fopen("regiuni.in","r");
	fout=fopen("regiuni.out","w");
	fscanf(fin,"%d %d",&n,&m);
	for (i=1;i<=n;i++)
		fscanf(fin,"%d %d %d",&d1[i],&d2[i],&d3[i]);
	for (i=1;i<=m;i++)
		fscanf(fin,"%d %d",&p1[i],&p2[i]);
	for (i=1;i<=m;i++) viz[i]=0;

	nr=1; viz[1]=1;
	for (i=2;i<=m;i++)
	{
		aux=1;
		for (j=1;j<i;j++)
		{
			sw=1;
			for (k=1;k<=n;k++)
				if ((d1[k]*p1[i]+d2[k]*p2[i]+d3[k])*(d1[k]*p1[j]+d2[k]*p2[j]+d3[k])<0)
				{
					sw=0;
					break;
				}
			if (sw)
			{
				viz[i]=viz[j];
				aux=0;
				break;
			}
		}
		if (aux)
		{
			viz[i]=nr+1;
			nr++;
		}
	}
	fclose(fin);
	fprintf(fout,"%d\n",nr);
	fclose(fout);
	return 0;
}