Pagini recente » Cod sursa (job #1875462) | Cod sursa (job #1720429) | Cod sursa (job #1328754) | Cod sursa (job #2350595) | Cod sursa (job #2685387)
#include <bits/stdc++.h>
#define DimMax 800
using namespace std;
ifstream fin ( "nrtri.in" );
ofstream fout ( "nrtri.out" );
short n;
short v[DimMax];
int ans;
int CautaBinar ( int sum, int pos )
{
int sol = -1;
int st = pos; int dr = n - 1;
while ( st <= dr )
{
int mij = (st + dr) / 2;
if ( v[mij] < sum )
{
sol = mij;
st = mij + 1;
} else dr = mij - 1;
}
if ( sol == -1 )
return 0;
return (n - sol);
}
int main()
{
fin >> n;
for ( int i = 0; i < n; i++ )
fin >> v[i];
sort(v, v + n);
for ( int i = 0; i < n - 2; i++ )
for ( int j = i + 1; j < n - 1; j++ )
{
int sum = v[i] + v[j];
ans += CautaBinar( sum, j + 1);
}
fout << ans;
return 0;
}