Pagini recente » Cod sursa (job #2547883) | Cod sursa (job #70634) | Cod sursa (job #3000523) | Cod sursa (job #1613007) | Cod sursa (job #340627)
Cod sursa(job #340627)
#include <stdio.h>
#include <vector>
#include <algorithm>
#define MAXN 816
using namespace std;
vector<int> a;
int n,nrsol;
void bsearch(int key,int ilo)
{
int hi = n,m,lo = ilo,am;
while (lo<=hi)
{
m = (lo+hi)/2;
if (a[m] <=key)
{
nrsol++;
am = m;
while (am>ilo)
{
am--;
nrsol++;
}
while (a[m]<=key)
{
if (m<n-1)
{
m++;
}
else
{
return;
}
if (a[m]<=key)
{
nrsol++;
}
}
return;
}
else if (m>=ilo)
{
hi = m-1;
}
else
{
return;
}
}
}
int main()
{
freopen("nrtri.in","r",stdin);
freopen("nrtri.out","w",stdout);
int i,j,aux;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d",&aux);
a.push_back(aux);
}
sort(a.begin(),a.end());
for (i=0;i<n;i++)
{
for (j=i+1;j<n-1;j++)
{
bsearch(a[i]+a[j],j+1);
}
}
printf("%d",nrsol);
return 0;
}