Cod sursa(job #1025058)

Utilizator Iustin_BulimarFMI Iustin Bulimar Iustin_Bulimar Data 9 noiembrie 2013 14:30:29
Problema Triang Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include<cmath>
#include<algorithm>
using namespace std;
ifstream cin("triang.in");
ofstream cout("triang.out");

struct punct
{
    double x, y;
};
struct distanta
{
    float l;
    int a, b;
};
short n;
double v[1501][1501];
int k, i, j, x;
punct p[1501];
distanta d[2300000];

int main()
{
    cin>>n;
    for(i=1; i<=n; i++) cin>>p[i].x>>p[i].y;
    for(i=1; i<n; i++)
        for(j=i+1; j<=n; j++)
        {
            d[++k].l=sqrt(pow(p[i].x-p[j].x, 2)+pow(p[i].y-p[j].y, 2));
            d[k].a=i;
            d[k].b=j;
            v[i][j]=d[k].l;
        }
    for(i=1; i<k; i++)
        for(j=i+1; j<=k; j++)
            if(d[i].l-d[j].l>0.001) swap(d[i], d[j]);
            else
                if(abs(d[j].l-d[i].l)<=0.001)
                    if(d[i].a>d[j].a) swap(d[i], d[j]);
                    else
                        if(d[i].a==d[j].a && d[i].b>d[j].b) swap(d[i], d[j]);
    for(i=1; i<k; i++)
    {
        j=i+1;
        while(d[j].l-d[i].l<=0.001 && d[i].a==d[j].a)
        {
            if(v[d[i].b][d[j].b]==d[i].l) x++;
            j++;
        }
    }
    cout<<x;
    return 0;

}