Pagini recente » Cod sursa (job #614804) | Cod sursa (job #2235601) | Cod sursa (job #2830361) | Cod sursa (job #2953366) | Cod sursa (job #2734935)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
using namespace std;
ifstream f ("trapez.in");
ofstream g ("trapez.out");
map<pair<int,int>,int>Map;
int n,rasp;
pair<int,int> puncte[1001];
int main()
{
f >> n;
for(int i = 1; i<=n; i++)
{
f >> puncte[i].first>> puncte[i].second;
}
for(int i = 1; i<=n; i++)
{
for(int j = i+1; j<=n; j++)
{
int numarator = puncte[j].second - puncte[i].second;
int numitor = puncte[j].first - puncte[i].first;
int gcd = __gcd(numarator,numitor);
Map[ {numarator/gcd,numitor/gcd}]++;
}
}
for(auto x : Map)
{
rasp+=((x.second * (x.second-1))/2);
}
g << rasp;
}