Cod sursa(job #467939)

Utilizator ooctavTuchila Octavian ooctav Data 1 iulie 2010 13:45:36
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>
#include <iostream>
#include <algorithm>
#define x first
#define y second
using namespace std;

const int INF = 1000000009;
const int NMAX = 1007;

int N;
pair<int, int> coord[NMAX];
double pante[NMAX * NMAX];int curent = 0;

void citire()
{
	cin >> N;
	for(int i = 1 ; i <= N ; i++)
		cin >> coord[i].x >> coord[i].y;
}

void calc_pante()
{
	for(int i = 1 ; i <= N ; i++)
		for(int j = i + 1 ; j <= N ; j++)
			if(coord[i].x == coord[j].x)
				pante[++curent] = INF;
			else
				pante[++curent] = (double)(coord[i].y - coord[j].y) / (coord[i].x - coord[j].x);
}

int aflare_rez()
{
	int REZ = 0;
	for(int i = 1, j = 1 ; i <= curent ; i++, j = i)
		while(pante[i] == pante[j + 1])
			REZ++, j++;
	return REZ;
}

int main()
{
	freopen("trapez.in", "r", stdin);
	freopen("trapez.out", "w", stdout);
	
	citire();
	calc_pante();
	sort(pante + 1, pante + curent + 1);
	printf("%d", aflare_rez());
	
	return 0;
}