Cod sursa(job #2789944)

Utilizator RaresPoinaruPoinaru-Rares-Aurel RaresPoinaru Data 28 octombrie 2021 10:46:16
Problema Trapez Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("trapez.in");
ofstream fout ("trapez.out");

const int NMAX=1010;
const int NNMAX=10000010;
int n;

pair <int,int> v[NMAX];
pair <int,int> v2[NNMAX];
int main()
{
    fin >>n;
    for (int i=1;i<=n;++i){
        fin >>v[i].first>>v[i].second;
    }

    int k=1;
    for (int i=1;i<n;i++){
        for (int j=i+1;j<=n;j++){
            v2[k].first=v[j].second-v[i].second;
            v2[k].second=v[j].first-v[i].first;
            if (v2[k].first<0)
                v2[k].first*=-1;
            if (v2[k].second<0)
                v2[k].second*=-1;
            //fout <<v2[k].first<<' '<<v2[k].second<<'\n';
            k++;
        }
    }
    sort (v2+1,v2+k+1);
    int len=1,lenmax=0;
    for (int i=1;i<=k;++i)
    {
        //fout <<v2[i].first<<' '<<v2[i].second<<'\n';
        if (v2[i].first==v2[i+1].first and v2[i].second==v2[i+1].second){
                len++;
        }
        else{
            lenmax+=len*(len-1)/2;
            len=1;
        }
    }
    fout <<lenmax;
    fin.close ();
    fout.close ();
    return 0;
}