Pagini recente » Istoria paginii runda/cdib_8910/clasament | Cod sursa (job #2887424) | Cod sursa (job #2279582) | Cod sursa (job #2296724) | Cod sursa (job #311238)
Cod sursa(job #311238)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f,*s;
long int n,i,j,q,st,dr,mj,nr;
long int v[505];
int main()
{
f=fopen("nrtri.in","r");
s=fopen("nrtri.out","w");
fscanf(f,"%ld\n",&n);
for(i=0;i<n;i++)
fscanf(f,"%ld ",&v[i]);
sort(v,v+n);
for(i=0;i<=n/2;i++)
{
for(j=i+1;j<n;j++)
{
st=j+1;
dr=n-1;
while(st<=dr)
{
mj=(st+dr)/2;
if((v[mj]<=v[i]+v[j] && v[mj+1]>v[i]+v[j]) || (v[mj]<=v[i]+v[j] && mj==n-1))
{
nr++;
break;
}
else
{
if(v[mj]>v[i]+v[j])
dr=mj-1;
else
st=mj+1;
}
}
}
}
fprintf(s,"%ld",nr);
fclose(s);
return 0;
}