Pagini recente » Cod sursa (job #2176382) | Cod sursa (job #2904522) | Cod sursa (job #2311522) | Cod sursa (job #2662374) | Cod sursa (job #2270977)
#include <fstream>
#include <stdio.h>
using namespace std;
FILE *fin=fopen("nrtri.in","r");
ofstream fout("nrtri.out");
int n,m,i,x,st,dr,poz,j,v[802],start,ultimul;
long long mid,suma,sol;
short q;
int main()
{
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
if(v[j]<v[i])
swap(v[i],v[j]);
for(i=1; i<n-1; i++)
for(j=i+1; j<n; j++)
{
suma=v[i]+v[j];
st=j+1;dr=n;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid]<=suma)
{
ultimul=mid;
st=mid+1;
}
else dr=mid-1;
}
sol+=ultimul-j;
// for(int x=j+1;x<=ultimul;x++)
//{
// fout<<v[i]<<" "<<v[j]<<" "<<v[x]<<"\n";
//}
//fout<<"\n\n";
}
fout<<sol;
return 0;
}