Pagini recente » Istoria paginii runda/sim.oji.2012/clasament | Cod sursa (job #1553947) | Cod sursa (job #1842746) | Cod sursa (job #1300680) | Cod sursa (job #98137)
Cod sursa(job #98137)
#include<stdio.h>
#include<iostream.h>
FILE*fin=fopen("nrtri.in","r");
FILE*fout=fopen("nrtri.out","w");
long n,i,j,v[801],ab,nrtri,var;
int citire()
{fscanf(fin,"%ld",&n);
for(i=1;i<=n;i++) fscanf(fin,"%ld",&v[i]);}
int sortare()
{int ad=0,var;
while(ad==0)
{ad=1;
for(i=1;i<n;i++)
if(v[i]>v[i+1])
{ad=0; var=v[i]; v[i]=v[i+1]; v[i+1]=var;}}
}
int binar()
{int test=j+(n-j)/2,k,var2=0; k=test;
if(v[k]<=ab) {var2=k-j; for(int i=k+1;i<=n && v[i]<=ab;i++) var2++;}
else {for(int i=k-1;i>=j+1;i--) if(v[i]<=ab) {var2++; break;} var2+=(i-j);}
nrtri+=var2;}
main()
{citire(); sortare();
for(i=1;i<=n-2;i++)
for(j=i+1;j<=n-1;j++) {ab=v[i]+v[j]; binar();}
fprintf(fout,"%ld",nrtri); cout<<endl;
}