Cod sursa(job #474208)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 2 august 2010 20:59:47
Problema Rays Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>

struct line
{
	int x, y1, y2;
} v[200002];

struct segm
{
	double st, dr;
} p[200002];

int n, nr, sol;

void rez ()
{
	int i;
	double dr = -2000000000;
	
	for (i = 1; i <= nr; i ++)
		if (dr < p[i].st)
		{
			dr = p[i].dr;
			sol ++;
		}
}

int main ()
{
	freopen ("rays.in", "r", stdin);
	freopen ("rays.out", "w", stdout);
	
	scanf ("%d", &n);
	
	int i;
	
	for (i = 1; i <= n; i ++)
	{
		scanf ("%d %d %d", &v[i].x, &v[i].y1, &v[i].y2);
		if (v[i].x > 0)
		{
			p[++nr].st = (double) v[i].y1 / v[i].x;
			p[nr].dr = (double) v[i].y2 / v[i].x;
		}
	}
	
	rez ();
	
	nr = 0;
	for (i = 1; i <= n; i ++)
		if (v[i].x < 0)
		{
			p[++nr].st = (double) -v[i].y1 / v[i].x;
			p[nr].dr = (double) -v[i].y2 / v[i].x;
		}
	
	rez ();
	
	printf ("%d\n", sol);
	
	return 0;
}