Pagini recente » Cod sursa (job #2138078) | Cod sursa (job #3224877) | Cod sursa (job #1112673) | Cod sursa (job #2403841) | Cod sursa (job #2678054)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int l[805] , n;
int lowerBound(int target){
int s=0, h= n - 1, mid;
while(s < h){
int mid = (s+h)/2;
if(l[mid] >= target)
h = mid;
else
s = mid+1;
}
return h;
}
int main()
{
int nr = 0;
in >> n;
for(int i = 0;i < n;i ++)
in >>l[i];
sort(l,l + n);
for(int i = 0;i <n - 2;i ++)
{
for(int j = i + 1;j < n - 1 && l[i] + l[j] >= l[j + 1];j ++)
{
int x = lowerBound(l[i] + l[j]);
if(l[x] != l[i] + l[j])x--;
nr += x - j;
}
}
out << nr;
return 0;
}