Pagini recente » Cod sursa (job #1159085) | Cod sursa (job #2592246) | Cod sursa (job #1040889) | Cod sursa (job #2476245) | Cod sursa (job #1026796)
#include <fstream>
using namespace std;
ifstream is("nrtri.in");
ofstream os("nrtri.out");
int Cautbin( int st );
int n, a[1000], l;
int mij, st, dr;
int s;
int aux;
int nrtri;
int main()
{
is >> n;
for(int i = 1; i <= n; ++i)
{
is >> a[i];
}
for(int i = 1; i <= n; ++i )
{
for(int j = i + 1; j <= n; ++j)
{
if(a[i] > a[j])
{
aux = a[i];
a[i] =a[j];
a[j] = aux;
}
}
}
for(int i = 1; i <= n - 2; ++i)
{
for(int j = i + 1; j <= n - 1; ++j)
{
s = a[i]+ a[j];
nrtri += Cautbin(j) - j - 1;
}
}
os << nrtri;
is.close();
os.close();
return 0;
}
int Cautbin( int st )
{
dr = n;
while ( st < dr )
{
mij = (st + dr) / 2;
if( a[mij] > s )
dr = mij - 1;
else
st = mij + 1;
}
if( s >= a[dr] )
++dr;
return dr;
}