Pagini recente » Cod sursa (job #1866283) | Cod sursa (job #2136529) | Cod sursa (job #2929574) | Cod sursa (job #2450326) | Cod sursa (job #130608)
Cod sursa(job #130608)
#include<stdio.h>
#include<algorithm>
using namespace std;
long v[1024];
long s[(1<<16)],nr[(1<<16)];
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
long n,sol = 0;
scanf("%ld",&n);
for( long i = 1; i <= n; ++i)
{
scanf("%ld",&v[i]);
nr[v[i]]++;
}
for ( long i = 1; i <= 60000;++i)
{
s[i] = s[i-1] + nr[i];
}
sort(v+1,v+n+1);
for( long i = 1; i<= n; ++i)
for( long j = i+1; j <= n ;++j)
{
sol+= s[v[i] + v[j]] - s[v[j]];
}
for( long i = 1; i <= 60000;++i)
{
sol+= (nr[i] *(nr[i]-1) *(nr[i]-2))/6;
}
for( long i = 1; i <= 60000;++i)
{
sol+= (nr[i] *(nr[i]-1))*s[i-1]/2;
}
printf("%ld\n",sol);
return 0;
}