Pagini recente » Cod sursa (job #2987894) | Cod sursa (job #2862713) | Cod sursa (job #2973389) | Cod sursa (job #953751) | Cod sursa (job #1171463)
using namespace std;
#include <fstream>
#include <algorithm>
ifstream fin("ntri.in");
ofstream fout("ntri.out");
int i, j;
int v[800];
int cautbin(int, int) ;
int main()
{
int n, nr=0, s;
fin>>n;
for(i=0; i<n; ++i) fin>>v[i];
sort(v, v+n);
for(i=2; i<n; ++i)
{
s=0;
for(j=i-1; j>=1; --j)
{
if(v[j]+v[0]>=v[i]) s+=j;
else if(v[j]+v[j-1]<v[i]) j=0;
else s+=cautbin(1, j-1);
}
nr+=s;
}
fout<<nr<<'\n';
return 0;
}
int cautbin(int st, int dr)
{
int mijl;
while(st<=dr)
{
mijl=(st+dr)/2;
if(v[mijl]+v[j]>=v[i] && v[mijl-1]+v[j]<v[i])
return j-mijl;
else if(v[mijl]+v[j]>=v[i]) dr=mijl-1;
else st=mijl+1;
}
}