Pagini recente » Cod sursa (job #483396) | Cod sursa (job #1150235) | Cod sursa (job #2158033) | Cod sursa (job #2698197) | Cod sursa (job #886571)
Cod sursa(job #886571)
#include<fstream>
#include<algorithm>
using namespace std;
int i,j,n,m,a[1001],k,nr=0;
bool cmp(int a,int b)
{
return a<b;
}
int cauta(int i,int j)
{
int mij,st=j+1,dr=n,val;
val=a[i]+a[j];
mij=(st+dr)/2;
while(st<=dr)
{
if(val>=a[mij]&&a[mij+1]>val)
return mij;
else
if(val>=a[mij])
st=mij+1,mij=(st+dr)/2;
else
dr=mij-1,mij=(st+dr)/2;
}
return -1;
}
int main()
{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for(i=1;i<=n;++i)
f>>a[i];
sort(a+1,a+n+1,cmp);
a[n+1]=10000000;
int p;
for(i=1;i<=n-2;++i)
for(j=i+1;j<n;++j)
{
p=cauta(i,j);
if(p>j)
nr+=p-j;
}
g<<nr<<"\n";
return 0;
}