Pagini recente » Cod sursa (job #3232378) | Cod sursa (job #2603444) | Cod sursa (job #608956) | Cod sursa (job #1400996) | Cod sursa (job #3274285)
#include <bits/stdc++.h>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int main() {
int n;
f >> n;
int v[n+1];
long long ras = 0;
for( int i = 1; i <= n; ++i )
{
f >> v[i];
}
sort( v+1, v+1+n );
for( int j = 2; j < n; ++j )
{
for( int i = 1; i < j; ++i )
{
//cout << "Analizam " << v[i] << " " << v[j] << ", " << i << " " << j << "\n";
///v[i] + v[j] > v[x]
int st = j+1, dr = n, mij;
while( st < dr )
{
mij = (st+dr)/2;
///[st, mij] si [mij+1, dr]
if( v[mij] > v[i]+v[j] )
dr = mij;
else
st = mij+1;
}
//cout << "Avem " << st << "\n";
int rasaux = n - st+1;
if( v[st] <= v[i]+v[j] )
rasaux = 0;
ras += rasaux;
}
}
g << ras;
}