Pagini recente » Cod sursa (job #2569005) | Cod sursa (job #2026279) | Cod sursa (job #2031128) | Cod sursa (job #2419288) | Cod sursa (job #235048)
Cod sursa(job #235048)
#include <stdio.h>
FILE *f,*g;
int main()
{ long int k;
int m[801],n,i,j,a,ab,flow,s
;
f=fopen("nrtri.in","r");
fscanf(f,"%d",&n) ;
for(i=0;i<n;i++)
fscanf(f,"%d",&m[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(m[i]>m[j]) {a=m[i];m[i]=m[j];m[j]=a;}
k=1;
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++)
{ab=j;flow=n-1;
s=m[i]+m[j];
while(ab+1<flow) if(m[(ab+flow)/2]==s) {ab=(ab+flow)/2;while(m[ab+1]==s) ab++;}
else if(s<m[(ab+flow)/2]) flow=(ab+flow)/2;
else ab=(ab+flow)/2;
k=k+ab-j;
}
g=fopen("nrtri.out","w");
fprintf(g,"%ld",k);
fclose(f);
fclose(g);
return 0;
}