Pagini recente » Cod sursa (job #3143418) | Cod sursa (job #656531) | Cod sursa (job #2894413) | Cod sursa (job #420027) | Cod sursa (job #2058307)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int n,v[801];
int main()
{
fin >> n;
int i,j,st,dr,poz,mij,sol=0;
for(i=1;i<=n;i++)
{
fin >> v[i];
}
sort(v+1,v+n+1);
for(i=3;i<=n;i++) //cel mai mare element
{
for(j=2;j<i;j++) //al doilea cel mai mare element
{
//cautare binara intre [1...j - 1] un element bun
poz=0;
st=1;
dr=j-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>=v[i]-v[j])
{
dr=mij-1;
poz=mij;
}
else st=mij+1;
}
if(poz != 0) sol+=j-poz;
}
}
fout << sol;
return 0;
}