Pagini recente » Cod sursa (job #11125) | Cod sursa (job #2972835) | Cod sursa (job #616228) | Cod sursa (job #2411539) | Cod sursa (job #570085)
Cod sursa(job #570085)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 805
int n , x[nmax] , cont = 0 ;
int bin_search (int i , int j)
{
int st = j + 1 , dr = n , mid , nr;
while (st < dr - 1)
{
mid = (st + dr) / 2;
if (x[i] + x[j] >= x[mid])
st = mid;
else dr = mid - 1;
}
if (x[dr] <= x[i] + x[j])
nr = dr;
else if (x[st] <= x[i] + x[j])
nr = st;
else
nr = st - 1;
return nr;
}
int main()
{
ifstream f ("nrtri.in");
ofstream g ("nrtri.out");
f >> n;
for (int i = 1 ; i <= n ; ++i)
f >> x[i];
sort (x + 1 , x + n + 1);
for (int i = 1 ; i < n ; ++i)
for (int j = i + 1 ; j <= n ; ++j)
cont += bin_search(i , j) - j;
g << cont;
return 0;
}