Pagini recente » Cod sursa (job #5478) | Cod sursa (job #2961351) | Cod sursa (job #516699) | Cod sursa (job #10557) | Cod sursa (job #2032162)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int n, v[800];
int lat1, lat2;
int pas = 1, indice, cnt, poz;
int main (){
in >> n;
for (int i = 0; i < n; ++ i){
in >> v[i];
}
sort(v, v + n);
for (int i = 0; i < n - 1; ++ i){
lat1 = v[i];
lat2 = v[i + 1];
poz = 0;
for (pas = 1; pas < n - 1; pas <<= 1);
while (pas > 0){
indice = poz + pas;
if (indice < n && v[indice] < lat1 + lat2 && (indice > i + 1 || indice < i))
poz = indice;
pas = pas >> 1;
}
if (poz != 0){
if (poz < i)
cnt += i - poz;
if (poz > i + 1)
cnt += poz - (i + 1);
}
}
out << cnt;
return 0;
}