Cod sursa(job #40881)

Utilizator razvannovaZegheanu Razvan - UPB razvannova Data 27 martie 2007 20:14:57
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
	short n,m,i,j,k,*d[4],p[3][1001],aux,sw,nr,viz[1001];
	ifstream fin("regiuni.in");
	ofstream  fout("regiuni.out");
	fin>>n>>m;
	d[0]=new short[1000];
	d[1]=new short[1000];
	d[2]=new short[1000];
	d[3]=new short[1000];
	for (i=1;i<=n;i++)
		fin>>d[1][i]>>d[2][i]>>d[3][i];
	for (i=1;i<=m;i++)
		fin>>p[1][i]>>p[2][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 ((d[1][k]*p[1][i]+d[2][k]*p[2][i]+d[3][k])*(d[1][k]*p[1][j]+d[2][k]*p[2][j]+d[3][k])<0)
				{
					sw=0;
					break;
				}
			if (sw)
			{
				viz[i]=viz[j];
				aux=0;
				break;
			}
		}
		if (aux)
		{
			viz[i]=nr+1;
			nr++;
		}
	}
	delete d;
	fin.close();
	fout<<nr<<endl;
	fout.close();
	return 0;
}