Pagini recente » Cod sursa (job #2186079) | Cod sursa (job #2848328) | Cod sursa (job #2147453) | Cod sursa (job #942023) | Cod sursa (job #590590)
Cod sursa(job #590590)
#include<stdio.h>
long a[801],b[801],nr=0;
int i,j,k,n;
void merge(long a[801],int p,int q)
{int m=(p+q)/2,i,j,k;
if(p==q)
return;
merge(a,p,m);
merge(a,m+1,q);
for(i=p,j=m+1,k=p;i<=m||j<=q;)
if(j>q||(i<=m&&a[i]<a[j]))
b[k++]=a[i++];
else
b[k++]=a[j++];
for(i=p;i<=q;i++)
a[i]=b[i];}
int main()
{freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
merge(a,1,n);
for(i=1;i<n-1;i++)
{for(j=i+1;j<n;j++)
{k=j+1;
while(a[i]+a[j]>=a[k]&&k<=n)
k++;
nr+=k-j-1;}}
printf("%ld",nr);
fclose(stdin);
fclose(stdout);
return 0;}