Pagini recente » Cod sursa (job #2426956) | Cod sursa (job #1811389) | Cod sursa (job #2818574) | Cod sursa (job #2545018) | Cod sursa (job #44307)
Cod sursa(job #44307)
#include <stdio.h>
int main()
{
int n=0,v[800],j=0,dr=0,i=0,st=0;
long ct=0;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&v[i]);
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++) if (v[i]>v[j]) v[i]=v[j]+v[i]-(v[j]=v[i]);
for (i=1;i<n-1;i++)
for (j=i+1;j<n;j++)
{
st=j+1;
dr=n;
while (st!=dr)
if (v[i]+v[j]>=v[(st+dr)/2]) st=(st+dr)/2+1;
else dr=(st+dr)/2;
ct+=st-j-1;
if ((st==n) && (v[i]+v[j]>=v[n])) ct++;
}
/* for (k=j+1;k<=n;k++)
{ k=j+1;
while ((v[i]+v[j]>=v[k])&&(k<=n))
{
ct++;
k++;
}
}*/
printf("%ld",ct);
return 0;
}