Pagini recente » Cod sursa (job #1698264) | Cod sursa (job #636819) | Cod sursa (job #152788) | Cod sursa (job #1922955) | Cod sursa (job #3153831)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int v[805],rezc[805];
int cont=0,n,a,b,c;
// abc tri daca sum a 2 l > a 3a l sii daca modul de dif dintre 2 l < a 3a l
bool verif(int c){
if(v[a]+v[b]>v[c] && v[b]+v[c]>v[a] && v[a]+v[c]>v[b]){
int s1=v[a]-v[b];
int s2=v[a]-v[c];
int s3=v[b]-v[c];
if(s1<0)
s1=-s1;
if(s2<0)
s2=-s2;
if(s3<0)
s3=-s3;
if(v[c]>s1 && v[b]>s2 && v[a]>s3){
// cout<<v[a]<<" "<<v[b]<<" "<<v[c]<<endl;
return true;
}
else{
return false;
}
}
else{
return false;
}
}
void cautbin(){
int st=1;
int dr=n;
// int limst,limdr=;
while(st<=dr){
c=(st+dr)/2;
if(verif(c)){
if(rezc[c]==0){
rezc[c]++;
cont++;
}
st=c+1;
}
else{
dr=c-1;
}
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
sort(v+1,v+n+1);
for( a=1;a<=n;a++){
for( b=1;b<=n;b++){
if(a!=b){
cautbin();
}
}
}
fout<<cont;
return 0;
}