Pagini recente » Cod sursa (job #1426693) | Cod sursa (job #2790874) | Cod sursa (job #753115) | Cod sursa (job #2668733) | Cod sursa (job #3176248)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
string file = "nrtri";
ifstream cin (file + ".in");
ofstream cout (file + ".out");
int n, v[100001];
inline int cbsus(int val)
{
int st = 1, dr = n+1;
while (dr != st + 1)
{
int mid = (st+dr)/2;
if (v[mid] <= val)
{
st = mid;
}
else
{
dr = mid;
}
}
return st;
}
inline int cbjos(int val)
{
int st = 0, dr = n;
while (dr!=st+1)
{
int mid = (st+dr)/2;
if (v[mid] < val)
{
st = mid;
}
else
{
dr = mid;
}
}
return dr;
}
int main()
{
int c=0;
cin >> n;
for (int i=1; i<=n; i++)
cin >> v[i];
sort(v+1,v+n+1);
for (int i=1; i<n; i++)
{
for (int j=i+1; j<=n; j++)
{
int l = cbsus(v[i]+v[j]) - j;
if (l > 0)
c+=l;
}
}
cout << c;
cin.close();
cout.close();
return 0;
}