Pagini recente » Cod sursa (job #2668415) | Cod sursa (job #2098335) | Cod sursa (job #2142594) | Cod sursa (job #79264) | Cod sursa (job #1404673)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
int main()
{
int n,v[100002],i,s=0,mij,st,dr,sum,j,maxx,flag=0;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
sort(v+1,v+n+1);
maxx=v[1];
for(i=1;i<=n;i++)
if(maxx<v[i]) maxx=v[i];
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n-1;j++)
{
sum=v[i]+v[j];
st=j+1;
dr=n;
while(st<=dr&&flag==0)
{mij=(st+dr)/2;
if(sum<=v[mij]) /// se afla in partea de jos
dr=mij-1;
if(sum>v[mij]) /// se afla in partea de sus
st=mij+1;
if(sum>maxx) {mij=n;}
if(mij==n) flag=1;
}
s+=mij-j-1;}
out<<s;
return 0;
}