Cod sursa(job #1446290)

Utilizator crysstyanIacob Paul Cristian crysstyan Data 1 iunie 2015 12:25:25
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#define EPS 0.001
#define NMAX 1505

using namespace std;

ifstream f("triang.in");
ofstream g("triang.out");

int i, n, m=0, j, rez=0;
double dreapta[NMAX*NMAX];

struct punct
{
    double x, y;
};
punct v[NMAX];

double distanta(punct a, punct b)
{
    return sqrt( (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) );
}

bool egale(double a, double b)
{
    if (abs(a-b)<EPS) return 1;
    return 0;
}

int main()
{
    f>>n;

    for (i=1; i<=n; ++i)
        f>>v[i].x>>v[i].y;

    for (i=1; i<=n-1; ++i)
        for (j=i+1; j<=n; ++j)
        dreapta[++m]=distanta(v[i],v[j]);

    sort(dreapta+1,dreapta+m+1);

    for (i=1; i<=n-2; ++i)
        if (egale(dreapta[i],dreapta[i+1]) && egale(dreapta[i+1], dreapta[i+2]))
            rez++;

    g<<rez<<'\n';
    return 0;
}