Pagini recente » Cod sursa (job #2771982) | Cod sursa (job #1672863) | Cod sursa (job #1106950) | Cod sursa (job #2498268) | Cod sursa (job #481951)
Cod sursa(job #481951)
#include <stdio.h>
#include <stdlib.h>
int n,a[802],sum=0;
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
void bs(int lo,int p){
int hi=n,mid,er=lo-1;
while(lo<hi){
mid=lo+(hi-lo+1)/2;
if(a[mid]<=p){lo=mid;}
else{hi=mid-1;}
}
if(a[lo]<=p){sum+=lo-er;}
}
int main(){
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++){scanf("%d",&a[i]);}
qsort (a, n, sizeof(int), compare);
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
bs(j+1,a[i]+a[j]);
printf("%d",sum/2);
return 0;}