Pagini recente » Cod sursa (job #2702882) | Cod sursa (job #2377489) | Cod sursa (job #2592619) | Cod sursa (job #2280527) | Cod sursa (job #3265526)
#include <bits/stdc++.h>
using namespace std;
int bin_search(int x, int y, int n, int v[])
{
int st = y + 1, dr = n - 1;
while (st <= dr) {
int mij = st + (dr - st) / 2;
if (v[mij] > v[x] + v[y])
dr = mij - 1;
else st = mij + 1;
}
return dr;
}
int main(void)
{
ifstream cin("nrtri.in");
ofstream cout("nrtri.out");
int n, v[100001], nr = 0, dr;
cin >> n;
for (int i = 0; i < n; i++)
cin >> v[i];
sort(v, v + n);
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n - 1; j++) {
dr = bin_search(i, j, n, v);
nr += dr - j;
}
}
cout << nr;
return 0;
}