Cod sursa(job #953834)

Utilizator OpportunityVlad Negura Opportunity Data 27 mai 2013 16:08:50
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <stdio.h>
#include <algorithm>
using namespace std;
ifstream fi("trapez.in");
ofstream fo("trapez.out");

typedef long long ll;

struct point{int x,y;}a[1001];

ll i,n,j;
vector< double > p;


int main()
{

	fi >> n;
	for (i=1; i<=n; i++)
	{	
		fi >> a[i].x >> a[i].y;
		for (j=1; j<i; j++)
		{
			if (a[j].x==a[i].x)
			{
				p.push_back(1<<30);
			}
			else
			{
				p.push_back((double)(a[j].y-a[i].y)/(a[j].x-a[i].x));
			}
		}
	}
	
	sort(p.begin(),p.end());
	
	for (size_t k=1; k<p.size(); k++)
		printf("%.4lf\n",p[k]);
	
	
	ll x=0,rs=0;
	
	for (size_t k=1; k<p.size(); k++)
	{
		if (p[k]==p[k-1])
		{
			x++;
		}
		else
		{
			rs+=(x*(x+1)/2);
			x=0;
		}
	}
	if (x) rs+=(x*(x+1)/2);
	
	fo << rs;
	
	return 0;
}