Pagini recente » Cod sursa (job #689738) | Cod sursa (job #1502484) | Cod sursa (job #361788) | Cod sursa (job #1452221) | Cod sursa (job #2655697)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("nrtri.in");
ofstream out ("nrtri.out");
int v[1005];
int bs(int st, int dr, int x)
{
int med, last = -1;
while (st <= dr)
{
med = (dr + st) / 2;
if (x >= v[med])
{
last = med;
st = med + 1;
}
else
dr = med - 1;
}
return last;
}
int main()
{
int n, i, c = 0, j, s, poz;
in >> n;
for (i = 1; i <= n; i++)
in >> v[i];
sort(v, v + n + 1);
for (i = 1; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
s = v[i] + v[j];
poz = bs(j + 1, n, s);
if (poz != -1)
c += poz - j;
}
}
out << c;
return 0;
}