Pagini recente » Cod sursa (job #272849) | Cod sursa (job #1819706) | Cod sursa (job #2124769) | Cod sursa (job #219769) | Cod sursa (job #1772376)
#include <fstream>
using namespace std;
ifstream fin("nrtri.in");
ofstream fout("nrtri.out");
int i,n,m,j,s,v[1000],maxi,nr,aux;
int caut(int i, int j, int n,int v[])
{
int m, st=1,dr=n;
while(st<=dr)
{
m=(st+dr)/2;
if(m>j)
if(v[i]<=v[j]+v[m] && v[j]<=v[m]+v[i] && v[m]<=v[i]+v[j])
return 1;
if(v[m]>=v[i]+v[j])
dr=m-1;
if(v[m]<=v[i] || v[m]<=v[j])
st=m+1;
}
return 0;
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
int ok;
do
{
ok=0;
for(i=1;i<n;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=1;
}
}while(ok==1);
for (i=1;i<=n-2;++i)
for (j=i+1;j<=n-1;++j)
if(i!=j)
nr=nr+caut(i,j,n,v);
fout<<nr;
return 0;
}