Pagini recente » Cod sursa (job #1674237) | Cod sursa (job #2055573) | Cod sursa (job #1824583) | Cod sursa (job #2629246) | Cod sursa (job #1519011)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int a[801],i,j,z,n,k,kk,ok,mij;
void quickSort(int a[], int left, int right)
{
int i = left, j = right;
int tmp;
int pivot = a[(left + right) / 2];
while (i <= j)
{
while (a[i] < pivot)
i++;
while (a[j] > pivot)
j--;
if (i <= j)
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
}
if (left < j)
quickSort(a, left, j);
if (i < right)
quickSort(a, i, right);
}
int binar(int a[] ,int st, int dr)
{
if(st>dr)
return -1;
else
{
mij=st+(dr-st)/2;
if(a[mij]>a[i]+a[j])
binar(a,st,mij-1);
else
{
if(mij==dr)
return mij;
else
{
if(a[mij+1]>a[i]+a[j])
return mij;
else
return binar(a,mij+1,dr);
}
}
}
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
quickSort(a,1,n);
for(i=1;i<n-1;i++)
for(j=i+1;j<n;j++)
{
mij=binar(a,j+1,n);
if(mij!=-1) kk=kk+mij-j;
}
g<<kk;
return 0;
}