Cod sursa(job #1520929)

Utilizator Y0da1NUME JMECHER Y0da1 Data 9 noiembrie 2015 18:40:34
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.46 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;
    double s;
    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));
            cout<<approx<<" "<<i<<" "<<j<<endl;
            laturi[nr]=(double)approx/1000;
            nr++;
        }
    for(i=0;i<l;i++)
        cout<<laturi[i]<<" ";
        cout<<endl;*/
    //sort(laturi, laturi+l);
    /*for(i=0;i<l;i++)
        cout<<laturi[i]<<" ";*/
    /*nr=0;
    for(i=1;i<n-1;i++)
        for(j=i+1;j<n;j++)
            if(max(laturi[i],laturi[j]) - min (laturi[i],laturi[j]) <=0.001)
            {
            s=(laturi[i]+laturi[j])/2;
            b=i; e=l-1;
            while(b<e)
                {
                    mid=(b+e)/2;
                    if(laturi[mid]<=s)
                        b=mid+1;
                    else
                        e=mid;
                    if(max(laturi[b],s) - min (laturi[b],s) <=0.001)
                        nr++;
                }
            }
    out<<nr;
    in.close();
    out.close();
    return 0;
}*/
#include <fstream>
#include <math.h>
using namespace std;
class punct
{
public:
    double x,y;
} v[1502];
int main()
{
    int i, j, k, nr=0, n;
    double l1, l2, l3;
    ifstream in ("triang.in");
    ofstream out ("triang.out");
    in>>n;
    for(i=0;i<n;i++)
        in>>v[i].x>>v[i].y;
            for(i=0;i<n-2;i++)
                for(j=i+1;j<n-1;j++)
                    for(k=j+1;j<n;j++)
                    {
                        l1=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));
                        l2=sqrt((v[i].x-v[k].x) * (v[i].x-v[k].x) + (v[i].y-v[k].y) * (v[i].y-v[k].y));
                        l3=sqrt((v[j].x-v[k].x) * (v[j].x-v[k].x) + (v[j].y-v[k].y) * (v[j].y-v[k].y));
                        if((max(l1, l2)-min(l1, l2)<=0.001) && (max(l2, l3)-min(l2, l3)<=0.001) && (max(l1, l3)-min(l1, l3)<=0.001))
                            nr++;
                    }
    out<<nr;
    in.close();
    out.close();
    return 0;
}