Pagini recente » Cod sursa (job #698759) | Cod sursa (job #3129891) | Cod sursa (job #2753950) | Cod sursa (job #154516) | Cod sursa (job #842464)
Cod sursa(job #842464)
#include <fstream>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
#define INF 3000000000
struct punct
{
int x, y;
}v[2000];
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int i, j, n, s = 0;
double panta[500000];
int main()
{
//Read
fin>>n;
for(i=1; i<=n; i++)
fin>>v[i].x>>v[i].y;
//Compute
for(i=1; i<n; i++)//aflarea pantelor
for(j=i+1; j<=n; j++)
{
if(v[i].x - v[j].x == 0)
panta[++s] = INF;
else
panta[++s] = double (v[i].y - v[j].y) / (v[i].x - v[j].x);
}
sort(panta+1,panta+s+1);//sortare
int nr_total = 0;
int nr = 1;
for(i=1; i<s; i++)
if(panta[i] == panta[i+1])
nr++;
else
{
nr_total += ((nr-1) * nr) / 2;
nr = 1;
}
//Print
fout<<nr_total;
}