Pagini recente » Istoria paginii runda/simulare-cartita-13/clasament | Cod sursa (job #332367) | Cod sursa (job #1489998) | Cod sursa (job #1257739) | Cod sursa (job #1525075)
#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;
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++)
{
s=a[i]+a[j];
k=j+1;
while(k<n){
if (s>=a[k]) nr++;
k++;
}
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}