Pagini recente » Cod sursa (job #1845167) | Cod sursa (job #1144678) | Cod sursa (job #1245118) | Cod sursa (job #1259678) | Cod sursa (job #361345)
Cod sursa(job #361345)
#include <stdio.h>
#include <algorithm>
using namespace std;
int main ()
{ int v[805],i,nr=0,st,dr,j,m,n,ok;
FILE *f=fopen("nrtri.in","r");
FILE *g=fopen("nrtri.out","w");
fscanf(f,"%d",&n);
for (i=1; i<=n; i++)
fscanf (f,"%d",&v[i]);
sort(v+1, v+1+n);
for(i=1; i<=n-2; i++)
for(j=i+1; j<=n-1; j++)
{ st=j+1;
dr=n;
ok=1;
while (st<dr && ok)
{ m=(st+dr)/2;
if (v[m]<=v[i]+v[j] && (v[m+1]>v[i]+v[j] || m==n)) ok=0;
else if (v[m]>v[i]+v[j]) dr=m-1;
else st=m+1;
}
nr=nr+m-j;
}
fprintf(g,"%d",nr);
fclose (f);
fclose (g);
return 0;
}