Pagini recente » Cod sursa (job #1283512) | Istoria paginii runda/oni_pre/clasament | Istoria paginii runda/oji_2011 | Cod sursa (job #2796602) | Cod sursa (job #1460655)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("nrtri.in");
ofstream out("nrtri.out");
const int maxn=805;
int v[maxn];
inline int caut_bin_1(int x,int n)
{
int st=1;
int dr=n;
int mij;
int ans = -1;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]>x)
dr=mij-1;
else if(v[mij]<=x) {
st = mij+1;
ans = mij;
}
}
return ans;
}
int main()
{
int n;
in>>n;
for(int i=1;i<=n;i++)
in>>v[i];
sort(v+1,v+n+1);
int rasp = 0;
for(int i = 1 ; i <= n ; ++ i)
for(int j = i + 1 ; j <= n ; ++ j)
{
int k = caut_bin_1(v[i] + v[j], n);
if(k != -1)
rasp = rasp + k - j;
}
out << rasp << '\n';
return 0;
}