Pagini recente » Cod sursa (job #2796876) | Cod sursa (job #574807) | Cod sursa (job #2786246) | Cod sursa (job #696054) | Cod sursa (job #1733054)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("nrtri.in");
ofstream cout("nrtri.out");
int n, a[802];
int caut(int s, int st1, int dr1)
{
int st, dr;
st = st1;
dr = dr1;
int maxim = 0;
while(st <= dr)
{
int m = (st + dr) / 2;
if (a[m] <= s)
{
maxim = m;
st = m + 1;
}
else
{
dr = m - 1;
}
}
return maxim;
}
int main()
{
cin >> n;
for(int i = 1;i <= n; ++i)
{
cin >> a[i];
}
int c = 0;
sort(a + 1, a + n + 1);
for(int i = 1; i <= n; ++i)
{
for(int j = i + 1; j <= n; ++j)
{
int s = a[i] + a[j];
int k = caut(s, j + 1, n);
if(k != 0)
{
c = c + (k - j);
}
}
}
cout << c << '\n';
return 0;
}