Cod sursa(job #1231780)

Utilizator dorinmoldovanMoldovan Dorin dorinmoldovan Data 21 septembrie 2014 15:37:36
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include "stdio.h"

FILE *f, *g;
int a[1001], b[1001], n;
double c[1000004];
int count;
int sum;

int main()
{
	f = fopen("trapez.in", "r");
	g = fopen("trapez.out", "w");

	fscanf(f, "%d", &n);

	for(int i = 1; i <= n; i++)
		fscanf(f, "%d %d", &a[i], &b[i]);

	count = 1;

	for(int i = 1; i < n; i++)
		for(int j = i+1; j <= n; j++)
		{
			if(a[i] == a[j])
				c[count++] = 9999999;
			else
				c[count++] = (1.0 * (b[j] - b[i])) / (1.0 * (a[j] - a[i]));
		}

	count--;

	for(int i = 1; i < count; i++)
		for(int j = i + 1; j <= count; j++)
		{
			if(c[j] < c[i])
			{
				double aux = c[j];
				c[j] = c[i];
				c[i] = aux;
			}
		}

	sum = 0;

	for(int i = 1; i <= count; i++)
	{
		int nr = c[i];
		int n = 1;

		while(i+1 <= count)
		{
			if(c[i+1] == c[i])
			{
				i = i + 1;
				n = n + 1;
			}
			else
				break;
		}

		if(n >= 2)
			sum = sum + n * (n-1) / 2;
	}

	fprintf(g, "%d", sum);

	fclose(f);
	fclose(g);

	return 0;
}