Pagini recente » Cod sursa (job #1703744) | Cod sursa (job #747946) | Cod sursa (job #2482768) | Cod sursa (job #2072319) | Cod sursa (job #1525083)
#include <stdio.h>
#include <stdlib.h>
FILE *f,*g;
void quick_sort (int *a, int n) {
int i, j, p, t;
if (n < 2)
return;
p = a[n / 2];
for (i = 0, j = n - 1;; i++, j--) {
while (a[i] < p)
i++;
while (p < a[j])
j--;
if (i >= j)
break;
t = a[i];
a[i] = a[j];
a[j] = t;
}
quick_sort(a, i);
quick_sort(a + i, n - i);
}
int main()
{
int a[900],i,j,n,nr=0,s=0,k=0,z=0;
f=fopen("nrtri.in","r");
g=fopen("nrtri.out","w+");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
// for(i=0;i<n;i++)
// printf("%d ",a[i]);
quick_sort(a,n);
// printf("\n");
// for(i=0;i<n;i+fclose(f);+
// printf("%d ",a[i]);
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++)
{
s=a[i]+a[j];
if(!z) k=j+1;
else k=z;
while(k<n){
if (s>a[k]) nr++;
else if(s==a[k]) {
z=k;
nr++;
}
else break;
k++;
}
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}