Pagini recente » Cod sursa (job #3041970) | Cod sursa (job #3148434) | Cod sursa (job #2827451) | Cod sursa (job #1471722) | Cod sursa (job #3216893)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("nrtri.in");
ofstream cout ("nrtri.out");
int v[801];
int cautbin(int j,int n,int i)
{
int st=j+1,dr=n,best=-1;
while(st<=dr)
{
int med=(st+dr)/2;
if(v[med]>v[i]+v[j])
dr=med-1;
else
{
st=med+1;
best=med;
}
}
return best;
}
int main()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
cin>>v[i];
sort(v+1,v+n+1);
int s=0;
for(int i=1; i<n; i++)
{
for(int j=i+1; j<=n; j++)
{
int best=cautbin(j,n,i);
if(best!=-1)
s+=best-j;
}
}
cout<<s;
return 0;
}