Cod sursa(job #920840)

Utilizator SagunistuStrimbu Alexandru Sagunistu Data 20 martie 2013 17:28:49
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;
int a[801],i,j,k,n,nr=0,x,y;
int cautbin(int x, int n, int j)
{int lo=j,hi=n,mid;
while(lo<=hi)
    {mid=(lo+hi)/2;
     if(a[mid]<=x&&mid>j)
        return mid;
     else
        lo=mid+1;
    }
return 0;
}
int main()
{ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
fin>>n;
for(i=1;i<=n;i++)
    fin>>a[i];
sort(a+1,a+n+1);
for(i=1;i<n;i++)
    for(j=i+1;j<=n;j++)
        {x=a[i]+a[j];
         y=cautbin(x,n,j);
         if(a[i]+a[j]>=a[y]&&a[i]+a[y]>=a[j]&&a[j]+a[y]>=a[i]&&y&&y>j)
            nr++;
        }
fout<<nr;
    return 0;
}