Pagini recente » Cod sursa (job #3189360) | Cod sursa (job #23300) | Cod sursa (job #704209) | Cod sursa (job #2498185) | Cod sursa (job #588188)
Cod sursa(job #588188)
#include<cstdio>
#include<algorithm>
#define nmax 805
using namespace std;
int P,n,nr;
int a[nmax];
void citeste();
void rezolva();
void afiseaza(long);
void citeste()
{
freopen("nrtri.in","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
fclose(stdin);
}
void rezolva()
{
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
{
int u=a[i]+a[j];
if(u>=a[n]) nr+=n-j;
else
{
int st,dr,mij;
st=j+1;
dr=n;
while(st<dr)
{
mij=(st+dr)/2;
if(a[mij]<u) st=mij+1;
else dr=mij-1;
}
nr+=dr-j-1;
}
}
}
void afiseaza()
{
freopen("nrtri.out","w",stdout);
printf("%d\n",nr);
fclose(stdout);
}
int main()
{
citeste();
sort(a+1,a+n+1);
rezolva();
afiseaza();
}