Cod sursa(job #2447321)

Utilizator ElizaTElla Rose ElizaT Data 12 august 2019 21:05:53
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

int a[1010],b[1010];
vector<pair<int, int> > v;

int main()
{
    ifstream fin("trapez.in");
    ofstream fout("trapez.out");
    int n,ans;
    fin >> n;
    for(int i = 1;i <= n;i++)
        fin >> a[i] >> b[i];
    for(int i = 1;i <= n;i++)
        for(int j = i + 1;j <= n;j++)
        {
            int x = a[i] - a[j],y = b[i]-b[j];
            int g = __gcd(x,y);
            v.push_back({y / g,x / g});
        }
    sort(v.begin(), v.end());
    pair<int, int> last = v[0];
    int k = 1;
    ans = 0;
    for(int i = 1;i < v.size();i++)
    {
        if(v[i] == last)
            k++;
        else {
            ans += (k * (k - 1)) / 2;
            k = 1;
        }
        last = v[i];
    }
    fout << ans;
    return 0;
}