Pagini recente » Cod sursa (job #629256) | Cod sursa (job #1404377) | Cod sursa (job #2510491) | Cod sursa (job #3292105) | Cod sursa (job #2547440)
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define ft first
#define sc second
ifstream fin("nrtri.in"); ofstream fout("nrtri.out");
int n, a[1000];
int bs(int x, int y, int l, int r){
int m=(l+r)/2;
if(l>r){return -1;}
if(l==r){
if( (a[m]+x)>=y ){return m;}
else{return -1;}
}
if( (a[m]+x)<y ){
return bs(x, y, m+1, r);
}
if( (a[m]+x)>=y ){
return bs(x, y, l, m);
}
}
int main(){
fin>>n;
for(int i=0; i<n; i++){
fin>>a[i];
}
sort(a, a+n);
int rez=0;
for(int i=0; i<(n-2); i++){
for(int j=i+2; j<n; j++){
int g=bs(a[i], a[j], i+1, j-1);
if(g<0){continue;}
rez+=j-g;
}
}
fout<<rez;
return 0;
}