Pagini recente » Cod sursa (job #2696827) | Cod sursa (job #1244898) | Cod sursa (job #2138828) | Cod sursa (job #200912) | Cod sursa (job #1768249)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
ifstream fin ("nrtri.in");
ofstream fout ("nrtri.out");
int n;
fin>>n;
int v[n],sum=0;
for (int i=0;i<n;++i)
{
fin>>v[i];
}
sort (v,v+n);
for (int i=0;i<n-2;++i)
{
for (int j=i+1;j<n-1;++j)
{
int x=v[i]+v[j];
//cout<<"x="<<x<<" ";
int s=j+1,d=n,mij=(d+s)/2;
while (s<=d)
{
mij=(d+s)/2;
if (v[mij]>x)
{
d=mij-1;
}
else
{
if (v[mij]==x){break;}
else
{
if (v[mij]<x)
{
s=mij+1;
}
}
}
}
if (x>=v[mij])
{
sum=sum+mij-j;
}
}
}
fout<<sum;
}