Pagini recente » Cod sursa (job #1561644) | Cod sursa (job #2032340) | Cod sursa (job #837585) | Cod sursa (job #849331) | Cod sursa (job #298748)
Cod sursa(job #298748)
#include<stdio.h>
int n,v[1000];
int i,j,total = 0;
int cauta(int p, int u)
{
int m;
m=(p+u)/2;
while (p<=u){
if ((v[m]<=v[i]+v[j] && v[m+1]>v[i]+v[j]) || (v[m]<=v[i]+v[j] && m==n-1))
return m;
else if (v[m]<=v[i]+v[j] && v[m+1]<=v[i]+v[j]) {
p=m+1;
m=(p+u)/2;
}
else {
u=m-1;
m=(p+u)/2;
}
}
return 0;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i = 0; i < n; i++)
scanf("%d",&v[i]);
for(i = 0; i < n-2; i++)
for(j = 0; j < n-2; j++)
total += cauta(1,n)-j;
printf("%d\n",total);
fclose(stdin); fclose(stdout);
return 0;
}