Pagini recente » Cod sursa (job #2196545) | Cod sursa (job #525475) | Istoria paginii runda/vv | Cod sursa (job #1301797) | Cod sursa (job #1525060)
#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,ok;
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-1);
// printf("\n");
// for(i=0;i<n;i+fclose(f);+)
// printf("%d ",a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
ok=1;
s=a[i]+a[j];
if(!z) k=j;
else k=z;
while(k<n){
k++;
if (s>a[k]) nr++;
else if(s==a[k])
{
z=k;
break;
}
else break;
}
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}