Cod sursa(job #842464)

Utilizator Detrol2kGuianu Leon Detrol2k Data 26 decembrie 2012 21:44:51
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;

#define INF 3000000000

struct punct
{
	int x, y;
}v[2000];

ifstream fin("trapez.in");
ofstream fout("trapez.out");
	
int i, j, n, s = 0; 
double panta[500000];

int main()
{
	//Read
	fin>>n;
	for(i=1; i<=n; i++)
		fin>>v[i].x>>v[i].y;
		

	//Compute
	for(i=1; i<n; i++)//aflarea pantelor
		for(j=i+1; j<=n; j++)
		{
			if(v[i].x - v[j].x == 0)
				panta[++s] = INF;
			else
				panta[++s] = double (v[i].y - v[j].y) / (v[i].x - v[j].x);
		}
	
	sort(panta+1,panta+s+1);//sortare
	
	int nr_total = 0;
	int nr = 1;
	for(i=1; i<s; i++)
		if(panta[i] == panta[i+1])
			nr++;
		else
			{
				nr_total += ((nr-1) * nr) / 2;
				nr = 1;
			}
	
	
	//Print 
	fout<<nr_total;
}