Pagini recente » Cod sursa (job #586145) | Cod sursa (job #2309011) | Cod sursa (job #974960) | Cod sursa (job #975963) | Cod sursa (job #1218109)
#include <stdio.h>
int v[801],n;
int cautbin(int sum){
int pas=1<<9;
int poz=0;
while(pas>0){
if(poz+pas<=n && v[poz+pas]<=sum){
poz+=pas;
}
pas/=2;
}
return poz;
}
FILE*f,*g;
int main()
{int i,j,aux,poz,mini;
f=fopen("nrtri.in","r");
g=fopen("nrtri.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
for(i=1;i<n;i++){
mini=v[i];
poz=i;
for(j=i;j<=n;j++) {
if(v[j]<mini) {
mini=v[j];
poz=j;
}
}
aux=v[poz];
v[poz]=v[i];
v[i]=aux;
}
int rez=0;
for(i=1;i<=n-2;i++){
for(j=i+1;j<=n-1;j++){
int k=cautbin(v[i]+v[j]-1);
rez+=k-j;
}
}
fprintf(g,"%d",rez);
fclose(f);
fclose(g);
return 0;
}