Pagini recente » Cod sursa (job #1012621) | Cod sursa (job #1934280) | Cod sursa (job #1612157) | Cod sursa (job #178603) | Cod sursa (job #1508039)
#include <fstream>
#include<algorithm>
using namespace std;
int n,v[805],i,j,a,k,s,st,dr,m;
int main()
{
ifstream f("nrtri.in");
ofstream g("nrtri.out");
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
sort(v+1,v+n+1);
for(i=1; i<n-1; i++)
for(j=i+1; j<n; j++)
{
a=min(v[n],v[i]+v[j]);
k=v[j]-v[i];
st=j;
dr=n;
while(st+1<dr)
{
m=(st+dr+1)/2;
if(v[m]>=a)
dr=m;
else st=m;
}
if(v[dr]>a)a=st;
else a=dr;
st=1;
dr=i;
while(st+1<dr)
{
m=(st+dr+1)/2;
if(v[m]>=k)
dr=m;
else st=m;
}
if(v[dr]>k)k=st;
else k=dr;
s+=a-k;
}
g<<s/3<<'\n';
f.close(); g.close();
}