Cod sursa(job #1771798)

Utilizator Gigel-FroneGigel Fronel Gigel-Frone Data 6 octombrie 2016 00:06:58
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	freopen("trapez.in", "r", stdin);
	freopen("trapez.out", "w", stdout);
	
	int n;
	scanf("%d", &n);
	vector <double> x, y;
	for(int i=1; i<=n; i++)
	{
		int X, Y;
		scanf("%d%d", &X, &Y);
		x.push_back(X);
		y.push_back(Y);
	}
	vector <double> v;
	for(int i=0; i<n; i++)
		for(int j=i+1; j<n; j++)
			v.push_back (1.0*(y[i]-y[j])/(x[i]-x[j]));
	sort(v.begin(), v.end());
	
	int k=1, ans=0;
	for(int i=0; i<v.size(); i++)
	{
		if(v[i] == v[i+1]) k++;
		else
		{
			ans+=(k*(k-1)/2);
			k=1;
		}
	}
	if(v[v.size()-1] == v[v.size()-2]) ans+=(k*(k-1)/2);
	printf("%d", ans);
}