Pagini recente » Cod sursa (job #2431391) | Cod sursa (job #1453448) | Cod sursa (job #1672669) | Cod sursa (job #1797771) | Cod sursa (job #323919)
Cod sursa(job #323919)
#include<stdio.h>
#include<string.h>
#define init(x) memset(x,0,sizeof(x))
int v[801],vv[801],i,j,n,b[30001],pmax[30001],max=30000;
long long p=0;
int main()
{FILE *f=fopen("nrtri.in","r"),*g=fopen("nrtri.out","w");
init(pmax);
init(b);
fscanf(f,"%d",&n);
for(i=1;i<=n;++i)
{fscanf(f,"%d",&v[i]);++b[v[i]];
if(v[i]>30000) return -1;
}
for(i=1;i<=max;++i)
{ if(b[i])
for(j=1;j<=b[i];++j) vv[++p]=i;
pmax[i]=p;
}
p=0;
for(i=1;i<n-1;++i)
for(j=i+1;j<n;++j)
if((vv[i]+vv[j])<=max)
p+=pmax[vv[i]+vv[j]]-j;
if(!p) p--;
fprintf(g,"%lld",p);
fclose(f);
fclose(g);
return 0;
}