Pagini recente » Diferente pentru utilizator/2sophiec61100tb6 intre reviziile 1 si 2 | Cod sursa (job #2064111)
#include <cstdio>
#include<algorithm>
using namespace std;
const int vmax=30000,nmax=800;
int ve[nmax+5];
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
int n,i,j,st,dr,mi,la,ans=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&ve[i]);
sort(ve+1,ve+n+1);
for(i=1;i<n;i++)
for(j=i+1;j<n;j++)
{
st=j+1;
dr=n;
la=-1;
while(st<=dr)
{
mi=(st+dr)/2;
if(ve[mi]<=ve[i]+ve[j])
{
la=mi;
st=mi+1;
}
else
dr=mi-1;
}
if(la!=-1)
ans=ans+la-j;
}
printf("%d\n",ans);
return 0;
}