Cod sursa(job #467870)
#include <stdio.h>
#define max 801
using namespace std;
int v[max];
int main(void)
{FILE *fin=fopen("nrtri.in","r");
FILE *fout=fopen("nrtri.out","w");
int n,i,ic,sf,nr=0,ok,aux;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++) fscanf(fin,"%d",v+i);
do
{ok=1;
for(i=0;i<n-1;i++)
if(v[i]>v[i+1])
{ok=0; aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; }
}while(!ok);
for(i=n-1;i>1;i--)
{ic=0; sf=i-1;
while(ic<sf)
{for(;ic<sf && v[ic]<v[i]-v[sf];ic++);
if(ic<sf)nr+=(sf-ic);
sf--;
}
}
fprintf(fout,"%d",nr);
fclose(fin); fclose(fout);
return 0;
}