Cod sursa(job #2270992)

Utilizator Alex_DiaconuDiaconu Alexandru Alex_Diaconu Data 27 octombrie 2018 20:45:32
Problema Numarare triunghiuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
#include <iostream>

using namespace std;

int v[801];
int c[801];
int d;

ifstream ci ("nrtri.in");
ofstream co ("nrtri.out");

int caut(int a,int b)
{
    for (int i=0; i<801; i++)
    {
        if (c[(b+a+1/2)]<c[a]+c[b])
        {
            b=(b+a+1)/2;
        }
        if (c[(b+a+1/2)]==c[a]+c[b])
        {
            d=c[(b+a+1)/2];
            return c[a];
        }
        if (c[(b+a+1/2)]>c[a]+c[b])
        {
            a=(b+a+1)/2;
        }
    }
}

int main()
{
    int n,min=30000,h,a,f=0;
    ci >> n;
    for (int i=0; i<n; i++)
    {
        ci >> v[i];
    }
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (v[j]<min)
            {
                min=v[j];
                h=j;
            }
        }
        c[i]=v[h];
        min=30000;
        v[h]=30001;
    }
    for (int i=0; i<n; i++)
    {
         for (int j=i+1; j<n; j++)
         {
            a=caut(j,n-1);
            for (int k=a; k<=d; k++)
            {
                if (v[a]+v[i]>v[j] && v[a]+v[j]>v[i])
                    f++;
            }
         }
    }
    co << f << endl;
    return 0;
}