Pagini recente » Cod sursa (job #2102279) | Cod sursa (job #343300) | Cod sursa (job #3270799) | Cod sursa (job #325927) | Cod sursa (job #3315330)
#include<fstream>
#include<algorithm>
using namespace std ;
ifstream cin("nrtri.in");
ofstream cout("nrtri.out");
int Cauta(int n , int v[] , int start , int target ){
int poz = start ;
int st = start , dr = n ;
while(st<=dr){
int mij = (st+dr)/2;
if(v[mij] < target ){
poz = mij ;
st = mij + 1 ;
}else {
dr = mij -1 ;
}
}
return poz ;
}
int main(){
int v[100001] , n , cnt =0 ;
cin>>n;
for(int i = 1 ; i <= n ; i ++ )
cin>>v[i];
sort(v+1,v+n+1);
for(int i = 1 ; i <= n - 2 ; i ++ ){
for(int j = i + 1 ; j <= n - 1 ; j ++ )
{
int temp = Cauta(n,v,j+1,v[i]+v[j]);
cnt +=temp-j ;
}
}
cout<<cnt-1;
return 0 ;
}