Pagini recente » Cod sursa (job #2524638) | Cod sursa (job #1290060) | Cod sursa (job #1410092) | Cod sursa (job #824148) | Cod sursa (job #2410215)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("trapez.in");
ofstream cout("trapez.out");
int n;
struct puncte{
int x, y;
}pct[1005];
map <pair <int, int>, int> p;
int cmmdc(int x, int y){
int r=0;
while(y){
r=x%y;
x=y;
y=r;
}
return x;
}
int comb(int x) {
return x * (x - 1) / 2;
}
int main() {
ios::sync_with_stdio(false);
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> pct[i].x >> pct[i].y;
int rez = 0;
for (int i = 1; i <= n; ++i) {
for (int j = i + 1; j <= n; ++j) {
int a = pct[i].y - pct[j].y;
int b = pct[i].x - pct[j].x;
int cmd = cmmdc(a, b);
a /= cmd;
b /= cmd;
p[{a, b}]++;
}
}
for (auto it:p) {
rez += comb(it.second);
}
cout << rez;
return 0;
}