Pagini recente » Cod sursa (job #1701825) | Cod sursa (job #1864000) | Borderou de evaluare (job #1800114) | Cod sursa (job #1184039) | Cod sursa (job #3324457)
#include <fstream>
#include<algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int x,i,j,k,n,t,nrsol,s,p,a[1000];
int cauta_bin(int x)//returneaza pozitia primului element
{ //mai mare ca x
int st,dr,mij;
st=1;dr=n;
while(st<=dr){
mij=(st+dr)/2;
if(a[mij]<=x)st=mij+1;
else dr=mij-1;
}
return st;
}
int main()
{
f>>n;
for(i=1;i<=n;i++)f>>a[i];
sort(a+1,a+n+1);
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++){
s=a[i]+a[j];
p=cauta_bin(s);
nrsol+=p-j-1; //p-j-1 este numarul de solutii
} //pentru perechea a[i] si a[j]
g<<nrsol<<'\n';
g.close();
return 0;
}