Pagini recente » Cod sursa (job #1859261) | Cod sursa (job #971069) | Cod sursa (job #1838436) | Cod sursa (job #620800) | Cod sursa (job #513032)
Cod sursa(job #513032)
#include<fstream>
#define maxd 802
#include<algorithm>
using namespace std;
int a[maxd],n,nr,s;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
void citire()
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
}
int cautarebinara(int st,int dr,int x)
{
int gasit=0,m,nr2;
while(st<=dr&&gasit==0)
{
m=(st+dr)/2;
if(a[m]<=x&&a[m+1]>x)
return m;
else
if(a[m]<=x)
st=m+1;
else
dr=m-1;
}
return -1;
}
void calculeaza()
{
int i,j,c;
s=0;
sort(a+1,a+n+1);
a[n+1]=32000;
//for(i=1;i<=n;i++)
//g<<a[i]<<" ";
//g<<"\n";
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++)
{
s=a[i]+a[j];
c=cautarebinara(j+1,n,s);
if(c>j)
nr=nr+c-j;
}
}
int main()
{
citire();
calculeaza();
g<<nr;
return 0;
}