Pagini recente » Cod sursa (job #536958) | Cod sursa (job #1894090) | Cod sursa (job #2573189) | Cod sursa (job #960901) | Cod sursa (job #1802831)
#include <limits.h>
#include<bits/stdc++.h>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
struct punct {long long x, y;
}puncte[1001];
int main()
{
int n, i, j, nr_trapeze = 0, nr_pante = 0;
float m;
fin>>n;
for(i = 1; i <= n; ++i)
fin>>puncte[i].x>>puncte[i].y;
vector <float> pante;
for(i = 1; i <= n - 1; ++i)
for(j = i + 1; j <= n; ++j){
if(puncte[i].x != puncte[j].x){
m = (float)((puncte[j].y - puncte[i].y)) / (puncte[j].x - puncte[i].x);
pante.push_back(m);
}
else pante.push_back(-9999999);
}
nr_pante = pante.size();
for(i = 1; i <= nr_pante; ++i)
cout<<pante[i]<<" ";
sort(pante.begin(), pante.end());
for(i = 0; i <= nr_pante - 1; ++i){
for(j = i; pante[j] == pante[j + 1] && j <= nr_pante; ++j);
//if(pante[i] == pante[j])
// if(pante[i] != 9999999 && pante[j] != 9999999)
nr_trapeze += (j - i) * (j - i + 1) / 2;
}
fout<<nr_trapeze;
return 0;
}