Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. long long int rekursif(long long int angka,long long int batas)
  4. {
  5. long long int nilai;
  6. if(batas==0)
  7. {
  8. return 0;
  9. }
  10.  
  11. return angka*batas+rekursif(angka+1,batas-1);
  12.  
  13.  
  14. }
  15.  
  16.  
  17. void quicksort(long long int arr[],int min,long long int max)
  18. {
  19. long long int i=min,j=max,h;
  20. long long int pivot=arr[min];
  21.  
  22. do
  23. {
  24. while(arr[i]<pivot)i++;
  25. while(arr[j]>pivot)j--;
  26. if(i<=j)
  27. {
  28. h=arr[i];
  29. arr[i]=arr[j];
  30. arr[j]=h;
  31. i++;
  32. j--;
  33. }
  34. }while(i<=j);
  35.  
  36. if(i<max)
  37. {
  38. quicksort(arr,i,max);
  39. }
  40. if(min<j)
  41. {
  42. quicksort(arr,min,j);
  43. }
  44. }
  45.  
  46.  
  47.  
  48.  
  49. int main()
  50. {
  51. long long kasus,batas,arr[100001],hasil,limit,output,total=0,nilai=0,max,mentok;
  52.  
  53. scanf("%lld",&kasus);
  54. for(int i=0;i<kasus;i++)
  55. {
  56. scanf("%lld",&batas);
  57. for(int j=0;j<batas;j++)
  58. {
  59. scanf("%lld",&arr[j]);
  60. }
  61. quicksort(arr,0,batas-1);
  62. scanf("%lld",&limit);
  63. max=0;mentok=0;hasil=0;
  64. for(int j=batas-1;j>=0;j--)
  65. {
  66.  
  67. for(int k=1;k<batas;k++)
  68. {
  69. nilai=arr[j];
  70. hasil=rekursif(nilai,k);
  71. if(hasil<=limit)
  72. {
  73. max=hasil;
  74. // printf("HAHAHA: %lld %lld\n",nilai,k);
  75.  
  76. }
  77. else if(hasil>limit)
  78. break;
  79. }
  80. if(max>mentok && max<=limit)
  81. {
  82. mentok=max;
  83. }
  84.  
  85. else if(max>limit)
  86. {
  87. break;
  88.  
  89.  
  90. }
  91.  
  92. }
  93. printf("Case #%lld: %lld\n",i+1,mentok);
  94.  
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement