Pagini recente » Cod sursa (job #359010) | Cod sursa (job #1743937) | Cod sursa (job #1313766) | Cod sursa (job #1180325) | Cod sursa (job #1701145)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int v[802];
int caut(int sum,int n,int j){
int p2=1<<10;
while(p2>=1){
if(j+p2<=n && v[j+p2]<=sum){
j+=p2;
}
p2/=2;
}
return j;
}
int main()
{
int n,i,j,nrtri=0,varj;
FILE*fin,*fout;
fin=fopen("nrtri.in","r");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
fclose(fin);
sort(v+1,v+n+1);
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
varj=caut(v[i]+v[j],n,j);
nrtri+=varj-j;
}
}
fout=fopen("nrtri.out","w");
fprintf(fout,"%d",nrtri);
fclose(fout);
return 0;
}