Pagini recente » Cod sursa (job #2684368) | Cod sursa (job #1271225) | Cod sursa (job #2592814) | Cod sursa (job #2186521) | Cod sursa (job #350843)
Cod sursa(job #350843)
#include<cstdio>
long i,j,n,numar;
int ok;
int a[30001];
int cautare(int x)
{
int i,pas;
for (pas=1;pas<=n;pas<<=1);
for (i=0; pas; pas>>=1)
if (i+pas<=n && a[i+pas]<=x)
i+=pas;
if (i==0) return 0;
return i;
}
void schimba(long k)
{
long aux=a[k];
a[k]=a[k+1];
a[k+1]=aux;
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
scanf("%ld", &n);
for (i=1;i<=n;i++)
scanf("%ld", &a[i]);
do
{
ok=1;
for (i=1;i<n;i++)
if (a[i]>a[i+1])
{
schimba (i);
ok=0;
}
}while (ok==1);
long nn=n-1;
for (i=1;i<nn;i++)
for (j=i+1;j<n;j++)
{
long c2=cautare(a[i]+a[j]);
numar+=n-c2;
}
printf("%ld", numar);
return 0;
}