Pagini recente » Cod sursa (job #2923236) | Cod sursa (job #3268700) | Cod sursa (job #1425887) | Cod sursa (job #975265) | Cod sursa (job #2771797)
#include <fstream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <map>
#include <string>
#include <bitset>
#define pb(a) push_back(a)
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
struct point{
int x, y;
}v[1001];
struct functie{
double a, b;
}f[1001 * 1001];
int n, p = 1, x, y;
bool cmp(functie n, functie m){
if(n.a < m.a){
return true;
}
else if(n.a == m.a && n.b < m.b){
return true;
}
return false;
}
int main(){
cin >> n;
for(int i = 1; i <= n; ++i){
cin >> x >> y;
v[i].x = x;
v[i].y = y;
}
for(int i = 1; i < n; ++i){
for(int j = i + 1; j <= n; ++j){
double n, m;
n = v[i].y - v[j].y;
m = v[j].x - v[i].x;
f[p].a = n;
f[p].b = m;
p++;
}
}
p--;
sort(f + 1, f + p + 1, cmp);
int ans = 0;
for(int i = 1; i <= p; ++i){
for(int j = i + 1; j <= p; ++j){
double m1 = -f[i].a / f[i].b;
double m2 = -f[j].a / f[j].b;
if((double) m1 == (double) m2){
ans++;
}
}
}
cout << ans;
return 0;
}