fork(2) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void mergesort(int A[] , int i , int j);
  5. void merge(int A[] , int i, int j);
  6.  
  7.  
  8. int main()
  9. {
  10. int n , i ;
  11. long long int max=0;
  12. int *array;
  13. scanf("%d",&n);
  14.  
  15. array = (int *)malloc(n*sizeof(int));
  16.  
  17.  
  18.  
  19. for(i=0;i<n;i++)
  20. scanf("%d",array+i);
  21.  
  22. mergesort(array,0,n-1);
  23.  
  24. for(i=0;i<n;i++)
  25. {
  26. int z , j ;
  27. long long int localmax=0;
  28. z= *(array+i);
  29. j = i+1;
  30. localmax= z*j;
  31. if(localmax>max)
  32. max=localmax;
  33. }
  34.  
  35. printf("%lld",max);
  36.  
  37. free(array);
  38. return 0;
  39. }
  40.  
  41. void mergesort(int A[],int i,int j)
  42. { int mid;
  43. if(i>=j)
  44. return ;
  45. else {
  46. mid=(i+j)/2;
  47. mergesort(A,i,mid);
  48. mergesort(A,mid+1,j);
  49. merge(A,i,j);
  50. }
  51.  
  52. }
  53.  
  54. void merge(int A[],int i,int j)
  55. {
  56. int k,l,mid,start,b[100];
  57. start=i;
  58. mid=(i+j)/2;
  59. k=mid+1;
  60. l=i;
  61. while((i<=mid)&&(k<=j))
  62. {
  63. if(A[i]>=A[k])
  64. b[l++]=A[i++];
  65. else
  66. b[l++]=A[k++];
  67. }
  68.  
  69. if(i>mid)
  70. {
  71. for(;k<=j;)
  72. b[l++]=A[k++];
  73. }
  74. if(k>j)
  75. {
  76. for(;i<=mid;)
  77. b[l++]=A[i++];
  78. }
  79.  
  80. for(l=start;l<=j;l++)
  81. A[l]=b[l];
  82. }
Time limit exceeded #stdin #stdout 5s 527360KB
stdin
Standard input is empty
stdout
Standard output is empty