Pagini recente » Cod sursa (job #2442644) | Cod sursa (job #2498192) | Cod sursa (job #1343797) | Cod sursa (job #3231925) | Cod sursa (job #253477)
Cod sursa(job #253477)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 5000
int n,p,max;
int x[30100],a[600];
char s[N];
/*
void sortare()
{
int i,sort,aux;
sort = 0;
while(sort==0)
{
sort = 1;
for(i=1;i<=n-1;i++)
if(a[i] > a[i+1])
{
aux = a[i];
a[i] = a[i+1];
a[i+1] = aux;
sort = 0;
}
}
}
*/
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
int i,j,k,nr;
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%d\n",&n);
max = -1;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
x[a[i]]++;
if(a[i] > max)
max = a[i];
}
for(i=1;i<=max;i++)
if(x[i] != 0)
while(x[i] != 0)
{
a[++a[0]] = i;
x[i] --;
}
/*fgets(s,N,stdin);
k=-1;x=0;
for (i=0;s[i]!=NULL;i++)
if (s[i]==' ') a[++k]=x,x=0;
else x=x*10+s[i]-'0';
a[++k]=x;
*/
//sortare();
//qsort (a, n+1, sizeof(a[1]), compare);
nr = 0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
for(k=n;a[k]>a[i]+a[j];k--)
;
nr+=k-j;
/*
if(a[i] + a[j] >= a[k])
{
s += n - k ;
break;
}
*/
}
/*(for(i=1;i<=n;i++)
printf("%d\n",a[i]);*/
printf("%d",nr);
return 0;
}