Cod sursa(job #1299173)

Utilizator kappykkDragos kappykk Data 23 decembrie 2014 15:32:29
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <iostream>
#include <fstream>
#define x first
#define y second
#define pdd pair<double,double>
#define pb push_back
#include <vector>
#define mp make_pair
#include <algorithm>
#define sc sort(dist.begin(),dist.end())
#include <math.h>
#include <stdlib.h>

using namespace std;

const double precizie = 0.0001;

vector<pdd> v;
vector<double> dist;

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

bool Conditie(double a , double b , double c){
    return (fabs(a - b) < 1e-5 && fabs(a - c) < 1e-5 && fabs(b - c) < 1e-5);
}

int main()
{
    ifstream f("triang.in");
    ofstream g("triang.out");
    int n;
    f>>n;
    for(int i = 1 ; i <= n ; ++i){
        double a,b;
        f>>a;
        f>>b;
        v.pb(mp(a , b));
    }
    /*for(int i = 0 ; i < v.size() ; ++i){
        cout<<v[i].x<<" "<<v[i].y<<"\n";
    }*/
    for(int i = 0 ; i < v.size() - 1 ; ++i){
        for(int j = i + 1 ; j < v.size() ; ++j){
            dist.pb(Distanta(v[i] , v[j]));
        }
    }
    sc;
    /*for(int i = 0 ; i < dist.size() ; ++i){
        cout<<dist[i]<<" ";
    }*/
    int s = 0;
    for(int i = 0 ; i < dist.size() - 2 ; ++i){
        for(int j = i + 1 ; j < dist.size() - 1 ; ++j){
            for(int k = j + 1 ; k < dist.size() ; ++k){
                if(Conditie(dist[i] , dist[j] , dist[k])){
                    ++s;
                }
            }
        }
    }
    g<<s;
    return 0;
}