Cod sursa(job #2118957)

Utilizator marcudanfDaniel Marcu marcudanf Data 31 ianuarie 2018 13:39:27
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

vector <double> m;

pair <int, int> p[1005];
int n, nr, counter;
double val;

inline int sum(int N){
	return (N*(N+1))/2;
}

int main(){
	fin >> n;
	for(int i = 0; i < n; i++)
		fin >> p[i].first >>  p[i].second;
	for(int i = 0; i < n - 1; i++)
		for(int j = i + 1; j < n; j++){
			m.push_back(1.0*(p[i].second - p[j].second)/(p[i].first - p[j].first));
		}
	sort(m.begin(), m.end());
	for(vector <double>::iterator it = m.begin(); it != m.end(); it++){
		if(val == *it)
			counter++;
		else{
			val = *it;
			nr += sum(counter);
			counter = 0;
		}
	}
	cout << nr;
	fout << nr;
	return 0;
}