Pagini recente » Cod sursa (job #2990664) | Cod sursa (job #1520412) | Cod sursa (job #1744880) | Cod sursa (job #281321) | Cod sursa (job #1496698)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("nrtri.in");
ofstream fout ("nrtri.out");
int v[805],n;
int binar(int val)
{
int i, step;
for (step = 1; step < n; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step < n && v[i + step] <= val)
i += step;
return i;
}
int main()
{
int n,nr = 0,poz,s;
fin >> n;
for(int i = 0; i < n ; i++)
fin >> v[i];
sort(v,v+n);
for(int i = 1; i < n - 2; i++){
s = v[i] + v[i - 1];
if( s > v[n-1])
i = n + 1;
else{
poz = binar(s);
while(v[poz - 1 ] > s)
poz--;
while(v[poz ] <= s)
poz++;
nr += poz - i;
}
fout << nr << " ";
}
fout << nr;
return 0;
}