Cod sursa(job #1260578)

Utilizator vladrochianVlad Rochian vladrochian Data 11 noiembrie 2014 13:41:32
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
#include <limits>
using namespace std;

const int kMaxN = 1005, kMaxM = 1000005, kInfinity = 0x3f3f3f3f;

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

int N, M, x[kMaxN], y[kMaxN], sol;
double slope[kMaxM];

int main() {
	fin >> N;
	for (int i = 1; i <= N; ++i)
		fin >> x[i] >> y[i];
	for (int i = 1; i < N; ++i)
		for (int j = i + 1; j <= N; ++j)
			slope[M++] = (x[i] == x[j]) ? numeric_limits<double>::infinity() : (1.0 * (y[j] - y[i]) / (x[j] - x[i]));
	sort(slope, slope + M);
	for (int i = 1, crt = 0; i < M; ++i)
		if (slope[i - 1] == slope[i]) {
			++crt;
			sol += crt;
		} else {
			crt = 0;
		}
	fout << sol << "\n";
	return 0;
}