Cod sursa(job #819469)

Utilizator deneoAdrian Craciun deneo Data 19 noiembrie 2012 01:08:10
Problema Trapez Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream fin("trapez.in");
ofstream fout("trapez.out");

#define MAXN 1100

int N, REZ;
int nrPante;
pair<int, int> p[MAXN];
double pante[MAXN * MAXN];

int main() {
	fin >> N;
	for (int i = 1; i <= N; ++i) {
		int x, y;
		fin >> x >> y;
		p[i] = (make_pair(x, y));
	}
	
	for (int i = 1; i <= N; ++i)
		for (int j = i + 1; j <= N; ++j) 
			pante[++nrPante] = (double)(p[i].second - p[j].second) / (double)(p[i].first - p[j].first); 
	
	sort (pante + 1, pante + nrPante + 1);
	
	for (int i = 1; i <= nrPante; ++i) {
		int nr = 1;
		while (i + nr - 1 <= nrPante && pante[i + nr] == pante[i])
			++nr;
		REZ += (nr * (nr - 1)) / 2; 
	}
	
	fout << REZ;
	return 0;
}