Pagini recente » Borderou de evaluare (job #359201) | Borderou de evaluare (job #1936880) | Borderou de evaluare (job #312902) | Borderou de evaluare (job #2198838) | Cod sursa (job #2111603)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,v[1000],i,j,a,b,k,h;
int binar(int a,int b,int st)
{
int t=0,dr,mij;
dr=n;
int s=a+b;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=s)
{
t=mij;
st=mij+1;
}
else
{
dr=mij-1;
}
}
return t;
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
}
sort(v+1,v+1+n);
for(i=1;i<=n-2;i++)
{
for(j=i+1;j<=n-1;j++)
{
a=v[i];b=v[j];
h=binar(a,b,j+1);
if(h>0)
h-=j;
k+=h;
}
}
g<<k;
}