Pagini recente » Borderou de evaluare (job #2411843) | Cod sursa (job #3315331)
#include<fstream>
#include<algorithm>
using namespace std ;
ifstream cin("nrtri.in");
ofstream cout("nrtri.out");
int Cauta(int n , int v[] , int target ){
int st =1 , dr = n ;
while(st<=dr){
int mij = (st+dr)/2;
if(v[mij] <= target ){
st = mij + 1 ;
}else {
dr = mij -1 ;
}
}
return st;
}
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,v[i]+v[j]);
cnt +=temp-j -1;
}
}
cout<<cnt;
return 0 ;
}