Pagini recente » Cod sursa (job #209783) | Cod sursa (job #2507959) | Cod sursa (job #1450393) | Cod sursa (job #1327365) | Cod sursa (job #1739146)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int n,a,b,c,i,j,st,dr,m,sol,v[1000],x;
int main()
{
f>>n;
sol=0;
for(i=1;i<=n;i++)
{
f>>v[i];
}
sort(v+1,v+n+1);
for(a=1;a<=n-2;a++)
for(b=a+1;b<n;b++)
{
c=b;
x=v[a]+v[b];
v[n+1]=x+1;
if(v[b+1]<=x) c=b+1;
else
{
st=b+1; dr=n;
while(st<=dr)
{
m=st+(dr-st)/2;
if(v[m]<=x && v[m+1]>x) st=dr+1, c=m;
else if(v[m]<=x) st=m+1;
else if(v[m]>x) dr=m-1;
}
}
sol+=(c-b);
}
g<<sol<<'\n';
return 0;
}