Cod sursa(job #1520661)

Utilizator Y0da1NUME JMECHER Y0da1 Data 9 noiembrie 2015 10:07:25
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
#include <math.h>
#include <algorithm>
#include <iostream>
using namespace std;
double laturi[1125751];
class punct
{
public:
    double x,y;
} v[1502];
int main()
{
    int i,j,l, mid, b, e, n, nr=0;
    long approx;
    ifstream in ("triang.in");
    ofstream out ("triang.out");
    in>>n;
    l=n*(n-1)/2;
    for(i=0;i<n;i++)
        in>>v[i].x>>v[i].y;
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
        {
            approx=1000*sqrt((v[i].x-v[j].x) * (v[i].x-v[j].x) + (v[i].y-v[j].y) * (v[i].y-v[j].y));
            laturi[i]=(double)approx/1000;
        }
    sort(laturi, laturi+l);
    for(i=1;i<n-1;i++)
        for(j=i+1;j<n;j++)      ///2 3 4 7 9
            if(laturi[i]==laturi[j])
            {
            while(b<e)
            {
                b=i;e=l;
            mid=(b+e)/2;
            if((laturi[mid]==laturi[i]) && (laturi[mid+1]!=laturi[i]))
                {
                    nr++;
                    break;
                }
            if(laturi[mid]<=n)
                b=mid+1;
            else
                e=mid;
            }
    if(laturi[b]==nr)
        nr++;
        }
    out<<nr;
    in.close();
    out.close();
    return 0;
}