Pagini recente » Cod sursa (job #2756759) | Cod sursa (job #136734) | Cod sursa (job #1691234) | Cod sursa (job #2078547) | Cod sursa (job #1461720)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
const int MAX = 815;
int N;
int a[MAX];
int t;
int poz1, poz2;
int lmax, lmin;
int maxim, minim;
int main()
{
int i, j;
fin >> N;
for ( i = 1; i <= N; i++ )
{
fin >> a[i];
}
sort( a + 1, a + 1 + N );
for ( i = 1; i <= N; i++ )
for ( j = i + 1; j <= N; j++ )
{
poz1 = lower_bound( a + 1, a + 1 + N, a[j] - a[i] ) - a;
poz2 = lower_bound( a + 1, a + 1 + N, a[i] + a[j] ) - a;
poz2--;
if ( a[N] <= a[i] + a[j] )
poz2 = N;
poz1 = max( poz1 + 1, j + 1 );
if ( poz2 >= poz1 )
{
t += poz2 - poz1 + 1;
if ( i >= poz1 && i <= poz2 )
t--;
if ( j >= poz1 && j <= poz2 )
t--;
}
}
fout << t << '\n';
fin.close();
fout.close();
return 0;
}