Pagini recente » Cod sursa (job #1735275) | Cod sursa (job #801335) | Cod sursa (job #3281555) | Cod sursa (job #2965407) | Cod sursa (job #1923795)
#include <iostream>
#include<fstream>
#include<algorithm>
using namespace std;
#define N 900
int v[N],i,j,k,n;
long long sol;
inline int bs(int val,int x,int y)
{
if(v[x]>val)return x;
int ls=x,ld=y,m=(ls+ld)/2;
while(ls<=ld)
{
if(v[m]<=val && v[m+1]>val)return m;
else
{
if(v[m]>val)
{
ld=m-1;
m=(ls+ld)/2;
}
else
{
ls=m+1;
m=(ls+ld)/2;
}
}
}
}
inline bool cmp(int a,int b)
{
return(a<b);
}
int main()
{
ifstream f("nrtri.in");
f>>n;
for(i=1;i<=n;++i)
f>>v[i];
sort(v+1,v+1+n,cmp);
v[n+1]=90000;
for(i=1;i<n;++i)
for(j=i+1;j<n;++j)
{
k=bs(v[i]+v[j],j,n);
sol+=k-j;
}
ofstream g("nrtri.out");
g<<sol;
return 0;
}