Pagini recente » Cod sursa (job #1721696) | Cod sursa (job #1327061) | Cod sursa (job #2547249) | Cod sursa (job #229578) | Cod sursa (job #3171627)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int cauta(int i, int j, int n, int v[]){
int st=j+1, dr=n;
int mij;
while(st<=dr){
mij = (st+dr)/2;
if (v[mij]<=v[i]+v[j] && (v[mij+1]>v[i]+v[j] || mij == n)){
return mij;
}
else if (v[mij]<=v[i]+v[j] && v[mij+1]<=v[i]+v[j]){
st = mij+1;
}
else {
dr = mij-1;
}
}
return 0;
}
int v[801], n, s=0;
int main() {
fin >> n;
for (int i=1; i<=n; i++){
fin >> v[i];
}
sort(v+1, v+n+1);
for (int i=1; i<n-1; i++){
for (int j=i+1; j<n; j++){
int p = cauta(i, j, n, v);
if (p!=0){
s++;
}
}
}
fout << s;
return 0;
}