Pagini recente » Cod sursa (job #1687288) | Cod sursa (job #1839) | Cod sursa (job #1214731) | Cod sursa (job #1916944) | Cod sursa (job #2071172)
#include <fstream>
#include <algorithm>
#define NMAX 800
#define LIMIT 15
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int n, S;
int v[NMAX];
void cautareBinara(int i, int j) {
int pas = 1 << LIMIT, r = 0, lung = v[i] + v[j];
while (pas != 0) {
if (r + pas < n && v[r + pas] <= lung) {
r += pas;
}
pas >>= 1;
}
//out << i << ' ' << j << ' ' << r << '\n';
S += r - j;
}
int main()
{
in >> n;
for (int i = 0; i < n; i++) {
in >> v[i];
}
sort(v, v + n);
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
cautareBinara(i, j);
}
}
out << S;
return 0;
}