Cod sursa(job #1329373)

Utilizator AeroHHorea Stefan AeroH Data 29 ianuarie 2015 14:19:26
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <algorithm>
#include <map>
#define x first
#define y second
using namespace std;

int n,i,j,x,y,gc,rasp;


ifstream f("trapez.in");
ofstream g("trapez.out");
pair<int,int> v[1001];
map<pair<int,int>,int> m;
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
        {
            f>>v[i].x>>v[i].y;
        }
    for (i=1;i<=n;++i)
        for(j=i+1;j<=n;++j)
            {
                x=abs(v[i].x-v[j].x);
                y=abs(v[i].y-v[j].y);
                gc=__gcd(x,y);
                m[make_pair(x/gc,y/gc)]++;
            }
    for(map<pair<int,int>,int>::iterator it=m.begin();it!=m.end();++it)
        {
            rasp+=it->second*(it->second-1)/2;
        }
    g<<rasp/2;


    return 0;
}