Pagini recente » Cod sursa (job #585144) | Clasament preONI 2007, Runda 1, Clasele 11-12 | Cod sursa (job #2358954) | Cod sursa (job #2342896) | Cod sursa (job #727020)
Cod sursa(job #727020)
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
int n;
int bete[800];
int solve(const int&, const int&);
int main(void) {
ifstream fin("nrtri.in");
fin >> n;
for(int i = 0; i < n; ++i)
fin >> bete[i];
fin.close();
int sum = 0; sort(bete, bete+n);
for(int i = 0; i < n - 1; ++i)
for(int j = i + 1; j < n; ++j)
sum += solve(i, j);
ofstream fout("nrtri.out");
fout << sum;
fout.close();
}
int solve(const int& x, const int& y) {
int step, pos;
for(step = 1; step < n - y; step <<= 1) {}
for(pos = y; step != 0; step >>= 1)
if(pos + step < n && bete[pos + step] <= bete[x] + bete[y])
pos += step;
return pos - y;
}